Twitter4j:如何从状态获取twit url?

时间:2014-02-26 15:21:18

标签: java twitter

我在Windows上使用twitter4j-3.0.5。

当新状态到达StatusListener。onStatus()方法时,我想打印出它的URL,但我找不到任何合适的方法。状态。getURLEntities()总是空的,如果我查看传递给客户端的json,即使很难,但url字段不是空的并且包含有效的URL。 我只是不知道如何从java中获取这个值。

请告知。

2 个答案:

答案 0 :(得分:19)

getURLEntities()方法会返回推文内容中的所有网址,而不会返回推文的网址

幸运的是,推文的网址格式如下:

https://twitter.com/[screen name of user]/status/[id of status]

因此,您可以使用以下代码获取状态的网址:

Status status;
String url= "https://twitter.com/" + status.getUser().getScreenName() 
    + "/status/" + status.getId();
System.out.println(url);

答案 1 :(得分:0)

可以通过两种方式公开网址。

  • 提供推特链接

  • 提供推文的网站链接。

示例示例:

package com.twitter.example;

import java.util.List;

import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.URLEntity;
import twitter4j.conf.ConfigurationBuilder;

public class TwitterApplication {
    public static void main(String[] args) throws TwitterException {
        ConfigurationBuilder cf = new ConfigurationBuilder();
        cf.setOAuthConsumerKey("OAUTH_CONSUMER_KEY")
                .setOAuthConsumerSecret("OAUTH_CONSUMER_KEY_SECRET")
                .setOAuthAccessToken("OAUTH_ACCESS_TOKEN")
                .setOAuthAccessTokenSecret("OAUTH_ACCESS_TOKEN_SECRET");

        TwitterFactory tf = new TwitterFactory(cf.build());
        Twitter twitter = tf.getInstance();

        // get username and status
        List<Status> statusList = twitter.getHomeTimeline();

        int i = 0;
        for (Status status : statusList) {
            i++;
            String url = "https://twitter.com/" + status.getUser().getScreenName() + "/status/" + status.getId();
            System.out.println("Twitter URL:"+url);

            URLEntity[] urls = status.getURLEntities();
            for(URLEntity urlEntity : urls) {
                url = urlEntity.getURL();
                System.out.println("Website link URL in the tweet: "+url);
            }
            if (i == 1)
                break;
        }
    }
}

输出:

  

Twitter网址:https://twitter.com/CulturalGM/status/966308069884952577

     

推文中的网站链接网址:https://websitelink