java - twitter4j:401 身份验证凭据丢失或不正确

标签 java twitter twitter4j

我目前正在尝试获取一群用户的 userTimeline。这在过去对我有用,但现在不再起作用了。我正在使用 twitter4j 并使用 oauth。到目前为止,我已经在我的帐户上注册了 2 个应用程序,它们都应该能够访问 twitter-api。但是,从昨天开始,我收到了 401 - 身份验证凭证丢失或不正确(尝试了两个应用程序)。 Twitter 最近是否对 API 进行了任何更改?我应该设置一个新的 Twitter 帐户吗?创建应用程序并允许它访问您自己的帐户是否是一种合适的方式?

这是代码:

ConfigurationBuilder cb = new ConfigurationBuilder();
    cb.setDebugEnabled(true)
      .setOAuthConsumerKey("q...w")
      .setOAuthConsumerSecret("R...o")
      .setOAuthAccessToken("2...7")
      .setOAuthAccessTokenSecret("O....8");

  TwitterFactory tf = new TwitterFactory(cb.build());

    Twitter twitter = tf.getInstance();
  for ( Map.Entry<Long, String> entry : tmls.entrySet()) {

        long uid = entry.getKey();

        Paging paging = new Paging(1, count);

        ResponseList<Status> rls;

        try {
            rls = twitter.getUserTimeline(uid, paging);

            for ( int j = 0 ; j < rls.size() ; j++ ) {

                if (false == ltindex.contains(uid)) {


                    alsa.add(new String[] {  String.valueOf( rls.get(j).getId() ) , String.valueOf( uid ), rls.get(j).getText() , "", entry.getValue(), String.valueOf( rls.get(j).getCreatedAt().getTime() )  });

                }

            }


        } catch (TwitterException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

  }

错误:

  401:Authentication credentials (http://dev.twitter.com/pages/auth) were missing or incorrect. Ensure that you have set valid conumer key/secret, access token/secret, and the system clock in in sync.
  error - Not authorized
  request - /1/statuses/user_timeline.json?user_id=14221532&include_rts=true&include_entities=false&count=10&page=1
  Relevant discussions can be on the Internet at:
    http://www.google.co.jp/search?q=ced778ef or
    http://www.google.co.jp/search?q=10a1ea9d
  TwitterException{exceptionCode=[ced778ef-10a1ea9d], statusCode=401, retryAfter=0, rateLimitStatus=RateLimitStatusJSONImpl{remainingHits=273, hourlyLimit=350, resetTimeInSeconds=1304422, secondsUntilReset=845, resetTime=Tue May 03 11:36:48 UTC 2011}, version=2.2.3-SNAPSHOT(build: ddf24547632bf3a28b899e3d75b110de43f71c0f)}
    at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:189)
    at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:65)
    at twitter4j.internal.http.HttpClientWrapper.get(HttpClientWrapper.java:85)
    at twitter4j.TwitterImpl.get(TwitterImpl.java:1738)
    at twitter4j.TwitterImpl.getUserTimeline(TwitterImpl.java:246)
    at getExpertTweets.getSpecificOpinions(getExpertTweets.java:89)
    at classifyTweet.main(classifyTweet.java:57)
  root@se1:~# sudo ntpdate pool.ntp.org

最佳答案

我遇到了同样的问题。我使用的消费者 key 和消费者 secret 是正确的,我的机器是同步的。问题是我在 dev.twitter.com 上注册我的应用程序时没有设置回调 URL。一旦我设置了它,一切就都正常了。

关于java - twitter4j:401 身份验证凭据丢失或不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5868602/

相关文章:

java - 按语言搜索推特

java - 如何将 twitter v2 Kotlin 库添加到我的 Maven Java 代码中?

java - 为类依赖关系生成图形数据的工具

Java Generics - 插入内部类型参数

Twitter 的分享忽略了我的 data-url 和 data-text

java - Twitter4j v2.2.6 具有地理定位功能的流媒体 API

java - Java listFiles().length 只返回文件数还是文件+文件夹数

java - 我想使用 php 编译我的 java 文件,但它显示 javac 未被识别为命令

java - Twitter 抄写员和 clojure "The access_token method must be called with a request_token"

php - 简单的 Twitter Oauth 授权每次都要求提供凭据