我试图通过Twitter的Rest API获取用户的一些信息,但总是得到400响应代码(错误请求)。
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 :(得分:0)
我通过另一种方式获得了解决方案。来自 Access Twitter's REST API: TwitterCore Kit提供了一个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());
}
});
}
电贺。