一种从推文中获取图像的方法
A way to get image from A Tweet
我正在尝试从推文中提取图像 (media_url)。
问题是:当您想在 Android 应用程序中共享推文时,我唯一拥有的是我从共享意图中获得的推文。
我没有看到 API 我们在其中调用推文并且 returns 我们使用图像 URL。
有没有办法从通过 Twitter 应用程序的共享按钮共享的推文中获取图像 url?
protected void onCreate(Bundle savedInstanceState) {
Intent intent = getIntent();
String action = intent.getAction();
String type = intent.getType();
if (Intent.ACTION_SEND.equals(action) && type != null) {
Bundle bundle = intent.getExtras();
Set<String> keys = bundle.keySet();
Log.v("SAURAV"," Size is ::" + keys.size());
for (String string : keys) {
String image_url = intent.getStringExtra(string);
Log.v("SAURAV","image_url ::"+image_url);
}
if ("text/plain".equals(type)) {
String sharedText = intent.getStringExtra(Intent.EXTRA_TEXT);
Toast.makeText(getApplicationContext(), ""+sharedText, Toast.LENGTH_LONG).show();
/*Log.d("Saurav","URL We get :"+image_url);*/
Log.d("Saurav","SharedText is:"+sharedText);
handleShare(intent);
} else if (type.startsWith("image/")) {
Toast.makeText(getApplicationContext(), ""+type, Toast.LENGTH_LONG).show();
}
}
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
不幸的是,Twitter 没有为您提供该信息。我已经用我的一条推文进行了测试,你得到的唯一数据是额外的:
KEY: android.intent.extra.SUBJECT
VALUE: "Tweet from Pablisco (@pablisc0)"
KEY: android.intent.extra.TEXT
VALUE: "Pablisco (@pablisc0) tweeted at 11:26 am on Fri, Apr 13, 2012: @metrerovolador guay, por Brighton este finde. Aprovechando el comienzo de la primavera :) http://t.co/ZU2ZzmD8 (https://twitter.com/pablisc0/status/190747704115204096?s=09) Get the official Twitter app at https://twitter.com/download?s=13"
KEY: tweet_id
VALUE: 190747704115204096
您可以使用推特 API 从推特本身获取数据(使用 tweet_id
属性)获取有关如何使用推特的更多信息 API 按照这个 link: https://dev.twitter.com
(超出问题范围以显示如何使用 Twitter API)
终于可以用一点点后门方法来实现了:
我们从应用程序收到的文本意图在 link.
中嵌入了 media_id
- 1) 从文本中提取该 ID。
- 2) 调用此 api:
https://api.twitter.com/1.1/statuses/show.json?id=
- 3) 响应将是 JSON。然后遍历到"extended_entities"
在这个 "media" 数组中并遍历它你会发现
"media_url" 这将是实际图像 link。
我正在尝试从推文中提取图像 (media_url)。 问题是:当您想在 Android 应用程序中共享推文时,我唯一拥有的是我从共享意图中获得的推文。 我没有看到 API 我们在其中调用推文并且 returns 我们使用图像 URL。 有没有办法从通过 Twitter 应用程序的共享按钮共享的推文中获取图像 url?
protected void onCreate(Bundle savedInstanceState) {
Intent intent = getIntent();
String action = intent.getAction();
String type = intent.getType();
if (Intent.ACTION_SEND.equals(action) && type != null) {
Bundle bundle = intent.getExtras();
Set<String> keys = bundle.keySet();
Log.v("SAURAV"," Size is ::" + keys.size());
for (String string : keys) {
String image_url = intent.getStringExtra(string);
Log.v("SAURAV","image_url ::"+image_url);
}
if ("text/plain".equals(type)) {
String sharedText = intent.getStringExtra(Intent.EXTRA_TEXT);
Toast.makeText(getApplicationContext(), ""+sharedText, Toast.LENGTH_LONG).show();
/*Log.d("Saurav","URL We get :"+image_url);*/
Log.d("Saurav","SharedText is:"+sharedText);
handleShare(intent);
} else if (type.startsWith("image/")) {
Toast.makeText(getApplicationContext(), ""+type, Toast.LENGTH_LONG).show();
}
}
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
不幸的是,Twitter 没有为您提供该信息。我已经用我的一条推文进行了测试,你得到的唯一数据是额外的:
KEY: android.intent.extra.SUBJECT
VALUE: "Tweet from Pablisco (@pablisc0)"
KEY: android.intent.extra.TEXT
VALUE: "Pablisco (@pablisc0) tweeted at 11:26 am on Fri, Apr 13, 2012: @metrerovolador guay, por Brighton este finde. Aprovechando el comienzo de la primavera :) http://t.co/ZU2ZzmD8 (https://twitter.com/pablisc0/status/190747704115204096?s=09) Get the official Twitter app at https://twitter.com/download?s=13"
KEY: tweet_id
VALUE: 190747704115204096
您可以使用推特 API 从推特本身获取数据(使用 tweet_id
属性)获取有关如何使用推特的更多信息 API 按照这个 link: https://dev.twitter.com
(超出问题范围以显示如何使用 Twitter API)
终于可以用一点点后门方法来实现了: 我们从应用程序收到的文本意图在 link.
中嵌入了 media_id- 1) 从文本中提取该 ID。
- 2) 调用此 api: https://api.twitter.com/1.1/statuses/show.json?id=
- 3) 响应将是 JSON。然后遍历到"extended_entities" 在这个 "media" 数组中并遍历它你会发现 "media_url" 这将是实际图像 link。