5

次のコードを使用して、Android AccountManager から Twitter 資格情報を取得しています。

AccountManager am = AccountManager.get(this);
Account account = am.getAccountsByType("com.twitter.android.auth.login")[0];
am.invalidateAuthToken("com.twitter.android.auth.login", null);
am.getAuthToken(account, "com.twitter.android.oauth.token", null, this, createCallback(TOKEN), null);
am.getAuthToken(account, "com.twitter.android.oauth.token.secret", null, this, createCallback(TOKEN_SECRET), null);

コールバックから返された値を使用して、Twitter4J Twitter オブジェクトをセットアップしています。

Twitter twitter = new TwitterFactory().getInstance();
twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
twitter.setOAuthAccessToken(new AccessToken(token, tokenSecret));
User user = twitter.verifyCredentials();

ただし、verifyCredentials() を呼び出すと、次の例外が生成されます。

Exception connecting to twitter
    Received authentication challenge is null
    Relevant discussions can be found on the Internet at:
    http://www.google.co.jp/search?q=6f0f59ca or
    http://www.google.co.jp/search?q=200bae40
    TwitterException{exceptionCode=[6f0f59ca-200bae40 1de2170b-e16a1586], statusCode=-1, message=null, code=-1, retryAfter=-1, rateLimitStatus=null, version=3.0.2}
    at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:192)
    at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:61)
    at twitter4j.internal.http.HttpClientWrapper.get(HttpClientWrapper.java:89)
    at twitter4j.TwitterBaseImpl.fillInIDAndScreenName(TwitterBaseImpl.java:126)
    at twitter4j.TwitterImpl.verifyCredentials(TwitterImpl.java:578)

トークンを要求する前に AccountManager で invalidateAuthToken を呼び出してみましたが、違いはありませんでした。

token と tokenSecret の値を Twitter からアプリに提供された値に設定すると、verifyCredentials を正常に呼び出すことができますが、現在のデバイス ユーザーの Twitter 資格情報を使用できるようにする必要があります。

AccountManager から返されたトークンとトークン シークレットの値を使用して AccessToken をセットアップするために必要な他の手順はありますか?

これは、Android 2.3.5 を実行する HTC Evo でテストされました。

4

2 に答える 2

0

現在のデバイス ユーザーの Twitter 資格情報を使用できるようにする必要があります

申し訳ありませんが、これはできません。

于 2014-07-09T10:22:47.057 に答える
0

電話の時計/時刻が正しいことを確認します。

問題は、Twitter サーバーの時刻が携帯電話の時刻と一致しないことです。

于 2012-12-08T10:58:13.780 に答える