2011-07-13 5 views
1
package twitter4j.examples.tweets; 

import twitter4j.Status; 
import twitter4j.Twitter; 
import twitter4j.TwitterFactory; 
import twitter4j.auth.AccessToken; 
import twitter4j.conf.*; 

import java.io.IOException; 

public final class UpdateStatus { 

    public static void main(String[] args) throws IOException { 

     String testPost = "hello from otc"; 
     String consumerKey = "key"; 
     String consumerSecret = "secret"; 
     String accessToken = "access"; 
     String accessSecret = "access_secret"; 

     ConfigurationBuilder cb = new ConfigurationBuilder(); 

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

     try { 
      TwitterFactory factory = new TwitterFactory(); 
      Twitter twitter = factory.getInstance(); 
      AccessToken accestoken = new AccessToken(accessToken, accessSecret); 

      twitter.setOAuthAccessToken(accestoken); 
      Status status = twitter.updateStatus(testPost); 
      System.out.println("it worked!"); 
      if (status.getId() == 0) { 
       System.out 
         .println("Error occured while posting tweets to twitter"); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

は、なぜ私はこのエラーを取得しておくん:twitter4j:私がそれらを設定したにもかかわらず資格エラーを取得していますか?

401:認証資格情報(http://dev.twitter.com/pages/auth)が欠けているか間違っていました。有効なコンマーキー/シークレット、アクセストークン/シークレット、システムクロックを同期して設定してください。 エラー - OAuthで認証できませんでした。 http://www.google.co.jp/search?q=e06d87a8又は http://www.google.co.jp/search?q=5851cbdb TwitterException {例外コード= [e06d87a8-5851cbdb]、からstatusCode = 401、retryAfter = -1、rateLimitStatus =ヌル、 - 要求関連する議論/1/statuses/update.jsonは、インターネット上ですることができfeatureSpecificRateLimitStatus =ヌル、バージョン= twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:189)twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:65)twitter4jで においてにおける2.2.3} 。 (TwitterImpl.java:459) at twitter4j.TwitterImpl.updateStatus(TwitterImpl.java:459)(TwitterImpl.java:1871) でtwitter4j.TwitterImpl.postat twitter4j.examples.tweets.UpdateStatus.main(UpdateStatus.java:35)

私はすでにファイルに認証情報を設定していますか?

答えて

2

iはHERESに動作するコードを、それを考え出した:

package twitter4j.examples.tweets; 

import twitter4j.Status; 
import twitter4j.Twitter; 
import twitter4j.TwitterFactory; 
import twitter4j.auth.AccessToken; 

import java.io.IOException; 

public final class UpdateStatus { 

    public static void main(String[] args) throws IOException { 

     String tweet = "your first tweet via java"; 

     String accessToken = "your access token"; 
     String accessSecret = "your access token secret"; 

     try { 
      TwitterFactory factory = new TwitterFactory(); 
      Twitter twitter = factory.getInstance(); 
      AccessToken accestoken = new AccessToken(accessToken, accessSecret); 

      twitter.setOAuthAccessToken(accestoken); 
      Status status = twitter.updateStatus(tweet); 
      System.out.println("it worked!"); 
      if (status.getId() == 0) { 
       System.out 
         .println("Error occured while posting tweets to twitter"); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

注:これは、あなたがさえずり 上のアプリケーションを作成する必要があります動作するためには、次の

debug set to true 
oauth.consumerKey 
oauth.consumerSecret 
oauth.accessToken 
oauth.accessTokenSecret 
が含まれているtwitter4j.propertiesファイルを持っている必要があります

すべてのキーとトークンはtwitterアプリケーションのものです アプリケーションのアクセスレベルがすべて「読み書き」となっていることを確認してください

+0

私はプロパティファイルを使用していませんが、コードは動作しています。私はデスクトップアプリケーションをコーディングしています。プロパティーファイルはWebアプリケーション専用ですか? –

+0

こんにちは、私は解決策を得ていません。まず問題の原因は何ですか?間違った資格情報または間違ったシステムクロック?第2に、唯一の変更は、ConfigurationBuilderでの使用を中止し、代わりに設定ファイルtwitter4j.propertiesを削除することでした。バグの説明には非常に奇妙なものです。 – Nativ

関連する問題