1

私の質問を説明しましょう:

画像では、Twitter の access_token とシークレットを確認できます (Twitter アプリの詳細ページに表示されます)。

ここに画像の説明を入力

上記の2つを使用してステータスを更新しようとすると、機能します。

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で受け取ったtoken&secretを試してみました。正しい方法はそれらを取得することですが、twitter 応答で送信さaccessTokenれることを使用して取得する必要があります。oauth_verifier

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 に答える