如何通过twitter4j输出我最近的推文?

时间:2016-02-04 03:00:22

标签: java twitter4j

我正在尝试使用Twitter4J进行我的第一个代码项目(仅仅是为了好玩),它应该显示我用户时间线的五条最新推文。我在网上找到了这个代码,并用我的个人数据更新了它,但它一直在抛出这个例外:

  

403:该请求已被理解,但已被拒绝。随附的错误消息将解释原因。由于更新限制(https://support.twitter.com/articles/15364-about-twitter-limits-update-api-dm-and-following)而拒绝请求时使用此代码。 {"错误":[{"消息":" SSL是必需的","代码":92}}}相关讨论可以在Internet位于:http://www.google.co.jp/search?q=e5488403 TwitterException {exceptionCode = [e5488403-0cac370f],statusCode = 403,retryAfter = -1,rateLimitStatus = null,featureSpecificRateLimitStatus = null,version = 2.2.5}

关于它为什么不起作用的任何想法?我对此仍然很陌生,并且喜欢建议。

import twitter4j.Paging;
import twitter4j.ResponseList;
import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterFactory;
import twitter4j.auth.*;

public final class ReadTweets {

/**
 * Main method.
 *
 * @param args
 *            the command line arguments; unused here
 */
public static void main(String[] args) {
    Twitter twitter = new TwitterFactory().getInstance();
    //consumer key and consumer secret
    twitter.setOAuthConsumer("---", "---");
    //access token and access token secret
    twitter.setOAuthAccessToken(new AccessToken("---", "---"));

    try {
        ResponseList<Status> a = twitter.getHomeTimeline(new Paging(1,5));
        for (Status b : a) {
            System.out.println(b.getText());
        }
    } catch (Exception e) {
        System.out.println(e);
    }

  }
}

1 个答案:

答案 0 :(得分:0)

在twitter4j.properties上添加http.useSSL = true 或者将您的twitter4j升级到最新版本。 使用ConfigurationBuilder

    public static void main(String[] args) {
    ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
    configurationBuilder.setDebugEnabled(true);
    configurationBuilder.setOAuthConsumerKey(YOURCONSUMER_KEY);
    configurationBuilder.setOAuthConsumerSecret(YOURCONSUMER_SECRET);
    configurationBuilder.setOAuthAccessToken(YOURACCESSTOKEN);
    configurationBuilder.setOAuthAccessTokenSecret(YOURTOKENSECRET);
    configurationBuilder.setUseSSL(true);
    Configuration configuration = configurationBuilder.build();
    Twitter twitter = new TwitterFactory(configuration).getInstance();
    try {
        ResponseList<Status> a = twitter.getHomeTimeline(new Paging(1, 5));
        for (Status b : a) {
            System.out.println(b.getText());
        }
    } catch (Exception e) {
        System.out.println(e);
    }
}