5

Twitter4jを使用してTwitterのクレデンシャルが有効かどうかをテストするために、GoogleAppEngineに次のコードがあります

public void doGet(HttpServletRequest req, HttpServletResponse resp) {
    String Test = "Testing Twitter4J";
    try {

        ConfigurationBuilder confbuilder  = new ConfigurationBuilder();
        confbuilder.setOAuthAccessToken("A") 
        .setOAuthAccessTokenSecret("B") 
        .setOAuthConsumerKey("C") 
        .setOAuthConsumerSecret("D"); 
        Twitter twitter = new TwitterFactory(confbuilder.build()).getInstance(); 

        //Status status = twitter.updateStatus("Working lunch today");
        User user = twitter.verifyCredentials();
        Test = "Successfully updated the status to [" + user.getScreenName() + "].";

    } catch (TwitterException e) {
        Test =  "no";
    }
    try {
        resp.getOutputStream().write(Test.getBytes());
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return;
}

資格情報が有効な場合は、期待どおりに機能します。アクセスを取り消して資格情報が無効になると、AppEngineエラーが発生します。

Uncaught exception from servlet
twitter4j.TwitterRuntimeException: 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.
message - Invalid or expired token
code - 89

Relevant discussions can be found on the Internet at:
    http://www.google.co.jp/search?q=93f2523c or
    http://www.google.co.jp/search?q=8b74a4e3
TwitterException{exceptionCode=[93f2523c-8b74a4e3], statusCode=401, message=Invalid or expired token, code=89, retryAfter=-1, rateLimitStatus=null, version=3.0.3}

「ユーザーuser=twitter.verifyCredentials();」から ライン。http://twitter4j.org/javadoc/twitter4j/api/UsersResources.html#verifyCredentials()のjavadocからTwitterExceptionがスローされることを期待していました が、TwitterRuntimeExceptionが発生したようです。なんで?javadocsにTwitterRuntimeExceptionのメモが見つかりません。

4

1 に答える 1