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

时间:2015-02-04 09:39:48

标签: java android twitter

我正在尝试从推文中提取图像(media_url)。 问题是:当我想在Android应用程序中共享推文时,我唯一拥有的是推文(来自共享意图)。 我没有看到一个API,我们在其中调用tweet并返回图像URL。 有没有办法从Twitter应用程序通过“共享”按钮共享的推文中获取图像网址?

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);
}

2 个答案:

答案 0 :(得分:0)

不幸的是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_id属性)要获取有关如何使用Twitter API的更多信息,请点击以下链接:https://dev.twitter.com

(在问题范围之外,以显示如何使用Twitter API)

答案 1 :(得分:0)

最后可以用一点后门方法来实现这个目的: 我们从应用程序收到的文本意图在链接中嵌入了media_id。

  1. 1)从文本中提取该ID。
  2. 2)调用此api: https://api.twitter.com/1.1/statuses/show.json?id=
  3. 3)响应将是JSON。然后遍历&#34; extended_entities&#34; 在这个&#34;媒体&#34;数组和遍历这个你会发现 &#34; MEDIA_URL&#34;这将是实际的图像链接。