Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从Tweet获取图像的一种方法_Java_Android_Twitter - Fatal编程技术网

Java 从Tweet获取图像的一种方法

Java 从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

我试图从推特中提取图像(媒体url)。 问题是:当你想在Android应用程序中共享一条推文时,我唯一拥有的就是(从共享意图中)得到的推文。 我没有看到一个API,其中我们调用tweet并返回图像URL。 有没有办法从Twitter应用程序中通过共享按钮从tweet共享获取图像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);
}
创建时受保护的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

  • 1) 从文本中提取该id
  • 2) 调用此api:
  • 3) 响应将是JSON。然后遍历到“扩展的_实体” 在这个“媒体”阵列中,在遍历它时,您会发现 “媒体url”,它将是实际的图像链接

  • 你能添加一些你迄今为止尝试过做的事情的代码吗?@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应用程序的共享意图只给出文本。