1

让我解释一下我的问题:

在图像中,我们可以看到一个 twitter access_token 和 secret(出现在 twitter 应用程序详细信息页面上)

在此处输入图像描述

当我使用上述两个并尝试更新它的工作状态时。

Twitter twitter = TwitterFactory.getSingleton();
        twitter.setOAuthConsumer(Tweet.consumer_key, Tweet.consumer_secret);
        twitter.setOAuthAccessToken(new AccessToken(u.getTwittertoken(), u.getTwittersecret()));
        twitter.updateStatus("test");

但是我使用 twitter4j callbackURL 获得的 oauth_token 和 oauth_secret

在此处输入图像描述

不要使用上面的代码。我总是收到 Invalid/Expired Token 错误。

我不知道可能是什么错误。因为它曾经工作过一次,但突然停止(不知道确切时间)

请帮忙!如果有人可以共享他们的代码,那就太好了 - 获取令牌并将其保存到数据库中,然后再次从数据库中获取它以更新状态。

4

1 回答 1

3

对于那些面临同样错误的人,这就是我做错的事情:

我正在尝试在 twitter-response 中收到的令牌和秘密。尽管正确的方法是检索它们,accessToken但必须使用oauth_verifier在 twitter-response 中发送来检索它们。

ConfigurationBuilder cb = new ConfigurationBuilder();
            cb.setDebugEnabled(true).setOAuthConsumerKey(Tweet.consumer_key);
            cb.setOAuthConsumerSecret(Tweet.consumer_secret);
            TwitterFactory tf = new TwitterFactory(cb.build());
            Twitter twitter = tf.getInstance();

            RequestToken requestToken = (RequestToken) mapSession.get("rtoken");

            AccessToken accessToken = twitter.getOAuthAccessToken(requestToken, oauth_verifier);

            System.out.println("Request Token : " + ToStringBuilder.reflectionToString(requestToken, ToStringStyle.SHORT_PREFIX_STYLE));
            System.out.println("Access Token : " + ToStringBuilder.reflectionToString(accessToken, ToStringStyle.SHORT_PREFIX_STYLE));


            System.out.println(accessToken.getToken());        //use this further
            System.out.println(accessToken.getTokenSecret());  //use this further
于 2013-11-10T07:00:07.610 回答