使用twitter4j在Oauth中出现问题

时间:2011-08-22 19:44:45

标签: java oauth twitter4j

这是我在致电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库?有什么建议吗?

3 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:2)

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

答案 2 :(得分: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());

CALLBACK URL PAGE CODE:

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);