2015-04-06 161 views
0

我想通過Twitter的Rest API獲取用戶的一些信息,但總是得到400響應代碼(錯誤的請求)。Twitter Rest API Http請求失敗(Android)

TwitterAuthToken authToken = Twitter.getSessionManager().getActiveSession().getAuthToken(); 
OAuthSigning oauthSigning = new OAuthSigning(TwitterCore.getInstance().getAuthConfig(), authToken); 

Map<String, String> authHeaders = oauthSigning.getOAuthEchoHeadersForVerifyCredentials(); 

try { 
    URL url = new URL("https://api.twitter.com/1.1/account/verify_credentials.json"); 
    HttpsURLConnection connection = (HttpsURLConnection) url.openConnection(); 
    connection.setRequestMethod("GET"); 

    for (Map.Entry<String, String> entry : authHeaders.entrySet()) { 
     connection.setRequestProperty(entry.getKey(), entry.getValue()); 
    } 

    Log.v(MAIN_LOGIN_ACTIVITY_TAG, String.valueOf(connection.getResponseCode())); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

我一直在尋找在https://dev.twitter.com/es/twitter-kit/android/oauth-echo,好像是沒事...... 任何人都可以幫我嗎?

在此先感謝!

回答

0

我以另一種方式得到了解決方案。從Access Twitter's REST APITwitterCore套件提供TwitterApiClient用於製作經過驗證的Twitter API請求。

最後:

if (Twitter.getSessionManager().getActiveSession() != null) { 
    AccountService accountService = TwitterCore.getInstance().getApiClient().getAccountService(); 
    accountService.verifyCredentials(false, false, new Callback<com.twitter.sdk.android.core.models.User>() { 
     @Override 
     public void success(Result<com.twitter.sdk.android.core.models.User> result) { 
      Log.v(MAIN_LOGIN_ACTIVITY_TAG, String.valueOf(result.data.getId())); 
     } 

     @Override 
     public void failure(TwitterException e) { 
      Log.v(MAIN_LOGIN_ACTIVITY_TAG, e.getMessage()); 
     } 
    }); 
} 

映入眼簾。