繁体   English   中英

Java Twitter4j OAuth无法正常工作

[英]Java Twitter4j OAuth not working

我正在阅读这些 Twitter4j示例。 我正在尝试获取#7:OAuth支持工作,但是遇到了麻烦。 我有以下代码:

try {
    Twitter twitter = TwitterFactory.getSingleton();
    twitter.setOAuthConsumer("VALID KEY FROM APP HERE", "VALID SECRET FROM APP HERE");
    RequestToken requestToken = twitter.getOAuthRequestToken();
    AccessToken accessToken = null;
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    while(null == accessToken) {
        System.out.println("Open the following URL and grant access to your account:");
        System.out.println(requestToken.getAuthorizationURL());
        System.out.print("Enter the PIN(if aviailable) or just hit enter.[PIN]:");
        String pin = br.readLine();
        if(pin.length() > 0){
            accessToken = twitter.getOAuthAccessToken(requestToken, pin);
        } else {
            accessToken = twitter.getOAuthAccessToken();
        }
    }
    System.out.println(twitter.verifyCredentials().getId());
    System.out.println(accessToken);
} catch(Exception e) {
    e.printStackTrace();
}

我的控制台中的输出如下:

Open the following URL and grant access to your account:
https://api.twitter.com/oauth/authorize?oauth_token=<REMOVED>
Enter the PIN(if aviailable) or just hit enter.[PIN]:

当我复制原始链接并转到Web浏览器中的URL时,它将打开预期的Twitter应用程序授权页面。 当我授予它访问权限时,它会按预期将我发送至应用程序的回调(不存在)。 我从未收到控制台中所描述的图钉,所以我只按Enter键,结果是:

401:Authentication credentials (https://dev.twitter.com/pages/auth) were 
missing or incorrect. Ensure that you have set valid consumer key/secret, access token/secret, and the system clock is in sync.
Error processing your OAuth request: Invalid oauth_verifier parameter

Relevant discussions can be found on the Internet at:
        http://www.google.co.jp/search?q=17bf128c or
        http://www.google.co.jp/search?q=12b8f614
TwitterException{exceptionCode=[17bf128c-12b8f614], statusCode=401, message=null
, code=-1, retryAfter=-1, rateLimitStatus=null, version=4.0.4}
        at twitter4j.HttpClientImpl.handleRequest(HttpClientImpl.java:164)
        at twitter4j.HttpClientBase.request(HttpClientBase.java:57)
        at twitter4j.HttpClientBase.post(HttpClientBase.java:86)
        at twitter4j.auth.OAuthAuthorization.getOAuthAccessToken(OAuthAuthorizat
ion.java:125)
        at twitter4j.TwitterBaseImpl.getOAuthAccessToken(TwitterBaseImpl.java:33
6)
        at tweetserver.TweetServer.main(TweetServer.java:51)

我已多次检查应用程序的密钥和机密,然后将其复制/粘贴到我的代码中。 我还在PHP应用程序和Twitter4j中使用了具有访问令牌和访问令牌密钥的相同密钥/秘密(允许未经授权直接访问我的帐户使用API​​),没有任何问题。

我相信我不太清楚这个例子,如何解决这个问题? 感谢您的阅读。

我假设您已使用自己的凭据自定义了此行?

twitter.setOAuthConsumer("VALID KEY FROM APP HERE", "VALID SECRET FROM APP HERE");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM