2

这就是我打电话时得到的twitter.getOauthRequestToken(callbackUrl)。我添加了正确的消费者密钥和消费者秘密。

    401:Authentication credentials (https://dev.twitter.com/docs/auth) were missing or incorrect. Ensure that you have set valid conumer key/secret, access token/secret, and the system clock in in sync.
<?xml version="1.0" encoding="UTF-8"?>
<hash>
  <error>Desktop applications only support the oauth_callback value 'oob'</error>
  <request>/oauth/request_token</request>
</hash>

我多次调试代码并在进行上述调用之前找到了每个凭据。有没有用过twitter4j的可以指出问题吗?或者我应该使用另一个 oauth 库吗?有什么建议么?

4

3 回答 3

9

我有同样的问题,但是当我填写回调 URL 字段时,我的应用程序运行正常。也许您应该填写回调 URL 字段。

于 2012-11-09T14:16:12.717 回答
2

我猜您将您的应用程序注册为“桌面”应用程序。转到 twitter 应用程序,然后删除该应用程序并创建一个新应用程序,或者编辑现有应用程序,并将“web”作为应用程序类型。

于 2011-08-22T19:55:28.367 回答
2

试试这个:

Twitter twitter = new TwitterFactory().getInstance();
twitter.setOAuthConsumer("yourConsumerKey","yourConsumerSecret");
RequestToken requestToken = twitter.getOAuthRequestToken();

session.setAttribute("token", requestToken.getToken());
session.setAttribute("tokenSecret", requestToken.getTokenSecret());

// REDIRECT USER TO TWITTER LOGIN PAGE

response.sendRedirect(requestToken.getAuthorizationURL());

回调 URL 页面代码:

Twitter twitter = new TwitterFactory().getInstance();
twitter.setOAuthConsumer("yourConsumerKey","yourConsumerSecret");

AccessToken aToken = twitter.getOAuthAccessToken(new RequestToken((String) session.getAttribute("token"), (String) session.getAttribute("tokenSecret")));
                twitter.setOAuthAccessToken(aToken);
于 2012-03-31T05:00:30.293 回答