5

twitter4j を使用して twitter にログインし、ログインしているユーザーに関する情報を取得できますが、アプリケーションからツイートを投稿できません。ツイートを投稿するためにJava Webアプリケーションを使用しています。私が使用する以下のコードを参照してください。

String ACCESS_TOKEN = "ttttttttt";
    String ACCESS_TOKEN_SECRET = "gggggggggggggg";
    String CONSUMER_KEY = "gggggggggggg";
    String CONSUMER_SECRET = "hhhhhhhhhhhhh";
    String tweet = "";
    if (request.getParameter("tweet") != null) {
        tweet = request.getParameter("tweet");
    }
    AccessToken accessToken = new AccessToken(ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
    OAuthAuthorization authorization = new OAuthAuthorization(ConfigurationContext.getInstance(), CONSUMER_KEY, CONSUMER_SECRET, accessToken);
    Twitter twitter = new TwitterFactory().getInstance(authorization);
    try {
        //twitter.updateStatus("Hello World!");
        twitter.updateStatus(tweet);
    } catch (TwitterException e) {
        System.err.println("Error occurred while updating the status!");
    }

次の例外が発生します。

TwitterException{exceptionCode=[fa54b184-3bf2623f], statusCode=401, retryAfter=0, rateLimitStatus=null, version=2.1.5-SNAPSHOT(ビルド: d372a51b9b419cbd73d416474f4a855f3e889507)}

助けてください。

4

3 に答える 3

7
  1. 作成済みのアプリケーション (https://dev.twitter.com) に移動します。

  2. アプリケーションの設定を確認してください (> アプリケーションの種類)

  3. 「アプリケーション タイプ」は、読み取り、書き込み、およびアクセスのダイレクト メッセージのいずれかである必要があります。そうでない場合は、簡単に更新できます。

(処理環境でコードをテストしましたが、動作しています)

于 2012-05-23T17:39:35.730 に答える
4

まず、アクセストークン/シークレットとコンシューマーキー/シークレットを再生成します。次に、これを試してください。

String consumerKey = "yourconsumerKey ";
       String consumerSecret = "yourconsumerSecret";
       String accessToken = "yourAccessToken";
       String accessSecret = "yourAccessSecret";

       ConfigurationBuilder cb = new ConfigurationBuilder();
       cb.setDebugEnabled(true)
           .setOAuthConsumerKey(consumerKey)
           .setOAuthConsumerSecret(consumerSecret)
           .setOAuthAccessToken(accessToken)
           .setOAuthAccessTokenSecret(accessSecret);

       try 
       {
          TwitterFactory factory = new TwitterFactory(cb.build());
          Twitter twitter = factory.getInstance();

          System.out.println(twitter.getScreenName());
          Status status = twitter.updateStatus(latestStatus);
          System.out.println("Successfully updated the status to [" + status.getText() + "].");
           }catch (TwitterException te) {
              te.printStackTrace();
              System.exit(-1);
           }
于 2012-04-04T07:20:09.533 に答える
1

ステータスコード 401 は 、認証されていないことを意味します

資格情報が有効かどうかを確認します。そうである場合、アプリケーションがユーザーによって検証されていない可能性があります。twitter4j サイトの例を参照してください(ポイント 7)

于 2012-04-04T07:04:37.400 に答える