2014-04-02 38 views
0

我成功獲取每個憑據(Oauth_token,Oauth_verifier)。 有了它,我想發佈文字到Twitter賬戶,但它總是失敗,錯誤消息「無驗證挑戰找到我試圖使用twitter4j將狀態更新爲Twitter,但它不起作用

我發現像

一些解決方案「自動檢查時區」 , 「進口最新twitter4j庫」等。

但經過檢查,仍然無法正常工作。

有沒有人能告訴我方式。

代碼就像下面

public static void updateStatus(final String pOauth_token,final String pOauth_verifier) { 
    new Thread() { 
     public void run() { 
      Looper.prepare(); 

      try { 
       TwitterFactory factory = new TwitterFactory(); 
       AccessToken accessToken = new AccessToken(pOauth_token,pOauth_verifier); 

       Twitter twitter = factory.getInstance(); 
       twitter.setOAuthConsumer(Cdef.consumerKey, Cdef.consumerSecret); 
       twitter.setOAuthAccessToken(accessToken); 

       if (twitter.getAuthorization().isEnabled()) {     
        Log.e("btnTwSend","인증값을 셋팅하였고 API를 호출합니다."); 
        Status status = twitter.updateStatus(Cdef.sendText + " #" + String.valueOf(System.currentTimeMillis())); 
        Log.e("btnTwSend","status:" + status.getText()); 
       } 

      } catch (Exception e) { 
       Log.e("btnTwSend",e.toString()); 
      } 
     }; 
    }.start(); 
} 

回答

0

我認爲你缺少訪問令牌祕密代碼 「找不到認證的挑戰」。這就是你得到這個例外的原因。

嘗試以下操作:

ConfigurationBuilder configurationBuilder; 
Configuration configuration; 

    // Set the proper configuration parameters 
    configurationBuilder = new ConfigurationBuilder(); 

    configurationBuilder 
     .setOAuthConsumerKey(TWITTER_CONSUMER_KEY); 
    configurationBuilder 
     .setOAuthConsumerSecret(TWITTER_CONSUMER_SECRET); 

    // Access token 
    configurationBuilder.setOAuthAccessToken(ACCESS_TOKEN); 
    // Access token secret 
    configurationBuilder 
      .setOAuthAccessTokenSecret(ACCESS_TOKEN_SECRET); 

    // Get the configuration object based on the params 
    configuration = configurationBuilder.build(); 
    // Pass it to twitter factory to get the proprt twitter instance. 
    twitterFactory = new TwitterFactory(configuration); 
    twitter = twitterFactory.getInstance(); 

    // use this instance to update 
    twitter.updateStatus("Your status"); 
+0

我肯定設置的4個關鍵,這是如下:消費:m0Ju0uzvuiFVZrZdXhBxpdId4, tA8jaldE1lWy7D0YWlzXqJvgD5wkCv7PLUhYseiu8H2py53hOG 訪問: HK2l8H2aCU46FXyW4InKrryq8LZ5kuvMLlla79Ng, 2NSRIrqvSEVSm70o0ecKKnfKB6fZDDMIvUnMLjS1PsY 這沒關係。因爲它是測試帳戶。 但不工作... – prkyaong

+0

謝謝你的評論。但我知道oauth還有什麼必要... – prkyaong

+0

我有一個查詢。我們可以請討論http://chat.stackoverflow.com/rooms/50550/discussion-between-suhail-and-you –

0

我終於找到了原因。

我認爲名爲'oauth_token','oauth_verifier'的參數是accesstoken的成員, 但它不是真的。

我只是需要通過一種方法來獲得正確的密鑰。

這種方式需要'oauth_token','oauth_verifier'來獲得訪問權限。

此代碼必須添加下面的一個更多的代碼:

mAccessToken = mTwitter.getOAuthAccessToken(REQUEST_TOKEN,OAUTH_VERIFIER);

相關問題