2011-12-05 8 views
2

Logcatを動作しません:私はtwitter4jジャーを使用してTwitterにステータスを更新しようとしていますが、それは

12-06 09:23:25.673: D/final(537): caught 
12-06 09:23:27.003: D/userName(537): sayemsiam 
12-05 12:42:20.783: W/System.err(588): 401:Authentication credentials (https://dev.twitter.com/docs/auth) were missing or incorrect. Ensure that you have set valid conumer key/secret, access token/secret, and the system clock in in sync. 
12-05 12:42:20.783: W/System.err(588): error - Read-only application cannot POST 
12-05 12:42:20.783: W/System.err(588): request - /1/statuses/update.json  

私が読んを設定している、それは与えても自分のアプリケーションの設定で許可を書きます。

ここに私のコード全体があります。

public class TweetActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     ConfigurationBuilder configurationBuilder = new ConfigurationBuilder(); 

     // configurationBuilder.setOAuthConsumerKey(CONSUMER_KEY); 
     // configurationBuilder.setOAuthConsumerSecret(CONSUMER_SECRET); 

     CustomAsyncTask cm = new CustomAsyncTask(); 
     cm.execute(new String[] { "df" }); 
    } 

    private class CustomAsyncTask extends AsyncTask<String, Void, String> { 

       @Override 
     protected String doInBackground(String... urls) { 

      String CALLBACK_URI = "http://myapp.com"; 
      String CONSUMER_KEY = "********************"; 
      String CONSUMER_SECRET = "************************"; 
      String ACCESS_TOKEN = "*******************"; 
      String ACCESS_TOKEN_SECRET = "***********************"; 
      AccessToken ac = new AccessToken(ACCESS_TOKEN, ACCESS_TOKEN_SECRET); 
      Log.d("robin", "caught"); 
      // Configuration configuration = configurationBuilder.build(); 

      // Twitter twitter = new 
      // TwitterFactory(configuration).getInstance(ac); 
      Twitter twitter = new TwitterFactory().getInstance(); 
      twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET); 
      twitter.setOAuthAccessToken(ac); 
      Log.d("sayfsdem", "caught"); 

      try { 
       twitter4j.Status status = twitter 
         .updateStatus("tihs sw th aa updatein"); 
       Log.d("status", status.toString()); 
      } catch (TwitterException e) { 
       // TODO Auto-generated catch block 
       Log.d("final", "caught"); 
       e.printStackTrace(); 
      } 

      try { 
       Log.d("userName", twitter.getScreenName()); 
       // Log.d("password",twitter.getFavorites()()); 
      } catch (IllegalStateException e) { 
       Log.d("illesayem", "caught"); 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (TwitterException e) { 
       Log.d("fdfds", "caught"); 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      return "dfs"; 
     } 
     @Override 
     protected void onPostExecute(String result) { 

     } 
    } 
} 

だけ私は自分のアプリケーションの設定を読み込み書き込み権限を設定しているものの、それはスクリーンネームを読み取ることができることがわかります。前もって感謝します。

+0

エラーが発生し、コードの何行? –

+0

twitter4j 2.2.5以上を使用していますか? Twitterは安全な接続を必要とし、2.2.5より下のものは安全に接続しません。 – jmcdale

+0

私はtwitter4j 2.2.6スナップショットを使ってテストしましたが、同じ問題があります。 –

答えて

0

Twitter Apiのアクセス権を変更したときもこの問題が発生しました。

Regenerating the Access Token solved it 
+0

私はそれを再生成しましたが、同じエラー –

+0

SocialAuth Android https://code.google.com/p/socialauth-android/を使用してください。さらに、同じメッセージをtwitterに2回投稿しないでください – vineet

0

あなたはTwitterの開発者のウェブサイトにあなたのアプリケーションに行くと&書き込みを読むためのアプリのアクセス許可を変更する必要があります。

enter image description here

0

以下の作品かどうかを確認し、私が直接twitter4j.auth.AccessTokenを使用してトラブルを持っていた:

ConfigurationBuilder configurationBuilder = new ConfigurationBuilder(); 
configurationBuilder.setOAuthConsumerKey(CONSUMER_KEY); 
configurationBuilder.setOAuthConsumerSecret(CONSUMER_SECRET(; 
configurationBuilder.setOAuthAccessToken(ACCESS_TOKEN); 
configurationBuilder.setOAuthAccessTokenSecret(ACCESS_TOKEN_SECRET); 

Configuration configuration = configurationBuilder.build(); 

Twitter twitter = new TwitterFactory(configuration).getInstance(); 

twitter.whatever(...);