Java 从Tweet获取图像的一种方法
我试图从推特中提取图像(媒体url)。 问题是:当你想在Android应用程序中共享一条推文时,我唯一拥有的就是(从共享意图中)得到的推文。 我没有看到一个API,其中我们调用tweet并返回图像URL。 有没有办法从Twitter应用程序中通过共享按钮从tweet共享获取图像urlJava 从Tweet获取图像的一种方法,java,android,twitter,Java,Android,Twitter,我试图从推特中提取图像(媒体url)。 问题是:当你想在Android应用程序中共享一条推文时,我唯一拥有的就是(从共享意图中)得到的推文。 我没有看到一个API,其中我们调用tweet并返回图像URL。 有没有办法从Twitter应用程序中通过共享按钮从tweet共享获取图像url protected void onCreate(Bundle savedInstanceState) { Intent intent = getIntent(); String act
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);
}
创建时受保护的void(Bundle savedInstanceState){
Intent=getIntent();
String action=intent.getAction();
字符串类型=intent.getType();
if(Intent.ACTION_SEND.equals(ACTION)&&type!=null){
Bundle=intent.getExtras();
Set keys=bundle.keySet();
Log.v(“SAURAV”,“大小为::”+keys.Size());
用于(字符串:键){
字符串image\u url=intent.getStringExtra(字符串);
Log.v(“SAURAV”,“图像url::”+图像url);
}
if(“text/plain”.equals(type)){
String sharedText=intent.getStringExtra(intent.EXTRA_TEXT);
Toast.makeText(getApplicationContext(),“”+sharedText,Toast.LENGTH\u LONG.show();
/*Log.d(“Saurav”,“我们得到的URL:+image\uURL”)*/
Log.d(“Saurav”,“SharedText是:“+SharedText”);
手共享(意图);
}else if(键入.startsWith(“image/”){
Toast.makeText(getApplicationContext(),“”+类型,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
您可以使用twitter API从twitter本身获取数据(使用tweet\u id
属性),以获取有关如何使用twitter API的更多信息,请点击以下链接:
(不在展示如何使用Twitter API的问题范围内)最终可以通过一些后门方法实现这一点: 我们从应用程序收到的文本意图在链接中嵌入了媒体id
你能添加一些你迄今为止尝试过做的事情的代码吗?@pablisco找到我的更新问题。我将尝试通过ID获取它并返回。将发布代码详细信息。嘿@pablisco,从intent提取数据时,我只得到“android.intent.extra.TEXT”。我无法获取tweet_id。我正在使用以下代码从bundle Set keys=bundle.keySet()获取密钥;Log.v(“SAURAV”,“大小为::”+keys.Size());但每次我得到的大小是1,当我打印包含的内容时,我只得到tweet文本。你确定我们也有身份证吗?是从推特应用程序还是网站?编辑:好的,我只是重读了你的问题,它来自应用程序。我不确定,因为我从Twitter应用程序获取的数据中没有问题@pablisco,但我认为这些值是作为捆绑包获取的。我几乎可以肯定,现在android应用程序的共享意图只给出文本。