Как авторизоваться в твиттере с помощью Android AccountManager?
Как авторизоваться в твиттере с помощью Android AccountManager?
AccountManager am = AccountManager.get(this);
Account[] accts = am.getAccountsByType(TWITTER_ACCOUNT_TYPE);
if(accts.length > 0) {
Account acct = accts[0];
am.getAuthToken(acct, "com.twitter.android.oauth.token"/*what goes here*/, null, this, new AccountManagerCallback<Bundle>() {
@Override
public void run(AccountManagerFuture<Bundle> arg0) {
try {
Bundle b = arg0.getResult();
Log.e("TrendDroid", "THIS AUTHTOKEN: " + b.getString(AccountManager.KEY_AUTHTOKEN));
} catch (Exception e) {
Log.e("TrendDroid", "EXCEPTION@AUTHTOKEN");
}
}}, null);
}
Теперь я получил com.twitter.android.oauth.token и com.twitter.android.oauth.token.secret. Но каков следующий шаг? Как я могу использовать это для авторизации?
Я использую scribe api, и я пытался использовать его так:
service.signRequest(new Token(token, secret), request);
Но это не работает. Я также попробовал другие методы, которые не работают. Есть много таких вопросов:
https://dev.twitter.com/discussions/4875
https://groups.google.com/forum/?fromgroups
http://osdir.com/ml/twitter4j/2011-06/msg00128.html
Android: как Twitter oAuth через менеджер аккаунтов
Аутентификация в Твиттере с помощью классов Android AccountManager
Использование менеджера аккаунта для получения токена OAuth
и никто не дает конкретного ответа
1 ответ
com.twitter.android.oauth.token
а также com.twitter.android.oauth.token.secret
учетные данные, возвращаемые AccountManager для Android, проходят проверку подлинности только с использованием официального ключа и секретного ключа Twitter. AFAIK Они на самом деле не полезны для сторонних разработчиков.
Что касается Твиттера, я просто скажу, что они там, и если бы Твиттер изменил их с помощью обновления приложения, они бы сломали OAuth для каждого пользователя без этого обновления приложения.