Я пытаюсь получить токен OAuth из AccountManager для учетной записи Twitter и использовать его для отслеживания твиттера с помощью Twitter4j. Но я получаю не найденных проблем проверки подлинности TwitterException.Android - AccountManager Twitter OAuth, не найдено проблем с проверкой подлинности
Беллоу код, чтобы получить маркер и следовать за пользователем:
try{
AccountManager accountManager = AccountManager.get(getActivity());
Account twitterAccount = accountManager.getAccountsByType(AccountType.TWITTER.getType())[0];
AccountManagerFuture<Bundle> tokenFuture = accountManager.getAuthToken(twitterAccount, "com.twitter.android.oauth.token", null, true, new AccountManagerCallback<Bundle>() {
public void run(AccountManagerFuture<Bundle> result) {
Bundle bundle;
try {
bundle = result.getResult();
Intent intent = (Intent) bundle.get(AccountManager.KEY_INTENT);
if (intent != null) {
// User input required
getActivity().startActivity(intent);
} else {
String token = bundle.getString(AccountManager.KEY_AUTHTOKEN);
Log.i(TAG, "Token:" + token);
userToken = token;
}
} catch (Exception e) {
Log.e(TAG, "Error getting token", e);
}
}
}, null);
AccountManagerFuture<Bundle> secretFuture = accountManager.getAuthToken(twitterAccount, "com.twitter.android.oauth.token.secret", null, true, new AccountManagerCallback<Bundle>() {
public void run(AccountManagerFuture<Bundle> result) {
Bundle bundle;
try {
bundle = result.getResult();
Intent intent = (Intent) bundle.get(AccountManager.KEY_INTENT);
if (intent != null) {
// User input required
getActivity().startActivity(intent);
} else {
String secret = bundle.getString(AccountManager.KEY_AUTHTOKEN);
Log.i(TAG, "Secret Token:" + secret);
userSecret = secret;
}
} catch (Exception e) {
Log.e(TAG, "Error getting token", e);
}
}
}, null);
ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
configurationBuilder
.setOAuthConsumerKey(<Consumer-key>);
configurationBuilder
.setOAuthConsumerSecret(<Consumer-Secret>);
configurationBuilder.setOAuthAccessToken(userToken);
configurationBuilder.setOAuthAccessTokenSecret(userSecret);
Twitter twitter = new TwitterFactory(configurationBuilder.build()).getInstance();
User user = twitter.createFriendship(param.getUserName());
Toast.makeText(followListActivity,"Followed user @"+user.getScreenName()+" :)",Toast.LENGTH_SHORT);
} catch (TwitterException e) {
e.printStackTrace();
}
Получение это исключение:
TwitterException{exceptionCode=[ec1fe56d-1e3b4ac5 3ea58453-a92e09a2], statusCode=-1, message=null, code=-1, retryAfter=-1, rateLimitStatus=null, version=4.0.2}
at twitter4j.HttpClientImpl.handleRequest(HttpClientImpl.java:178)
at twitter4j.HttpClientBase.request(HttpClientBase.java:53)
at twitter4j.HttpClientBase.get(HttpClientBase.java:71)
at twitter4j.TwitterBaseImpl.fillInIDAndScreenName(TwitterBaseImpl.java:128)
at twitter4j.TwitterImpl.verifyCredentials(TwitterImpl.java:545)
at asynctask.FollowTwitterUserAsyncTask.doInBackground(FollowTwitterUserAsyncTask.java:113)
at asynctask.FollowTwitterUserAsyncTask.doInBackground(FollowTwitterUserAsyncTask.java:33)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask.run(FutureTask.java:234)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:841)
Caused by: java.io.IOException: No authentication challenges found
at libcore.net.http.HttpURLConnectionImpl.getAuthorizationCredentials(HttpURLConnectionImpl.java:438)
at libcore.net.http.HttpURLConnectionImpl.processAuthHeader(HttpURLConnectionImpl.java:418)
at libcore.net.http.HttpURLConnectionImpl.processResponseHeaders(HttpURLConnectionImpl.java:367)
at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:301)
at libcore.net.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:497)
at libcore.net.http.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:134)
at twitter4j.HttpResponseImpl.<init>(HttpResponseImpl.java:35)
at twitter4j.HttpClientImpl.handleRequest(HttpClientImpl.java:142)
Пожалуйста, укажите, что я делаю неправильно здесь.
Вниз избирателя, можете ли вы привести повод? Пожалуйста, укажите, почему. Любая помощь ценится, я здесь застрял. –