2012-12-07 12 views
5

sto ricevendo le credenziali di Twitter dal AccountManager Android utilizzando il seguente codice:utilizzando le credenziali di Android AccountManager Twitter per creare Twitter4J access token

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); 

sto usando i valori restituiti dalle funzioni di callback per impostare un oggetto Twitter4J Twitter:

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

ma genera la seguente eccezione quando si chiama 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) 

Ho provato a chiamare invalidateAuthToken sull'AccountManager prima di richiedere i token, ma questo non ha fatto alcuna differenza.

Posso chiamare correttamente verifyCredentials quando si impostano i valori token e tokenSecret a quelli forniti da Twitter per la mia app, ma devo essere in grado di utilizzare le credenziali di Twitter degli utenti del dispositivo corrente.

Esistono altri passaggi necessari per utilizzare i valori dei token e dei token secret restituiti da AccountManager per configurare un AccessToken?

Questo è stato testato su un HTC Evo, con Android 2.3.5.

+0

Una nota: non penso che 'invalidateAuthToken' funzioni senza passare la stringa token corrente. – devnate

+0

Anche io sto vivendo lo stesso problema! Non ho idea di come risolverlo –

risposta

0

Verificare che l'ora/ora sul telefono sia corretta.

Il problema è che l'ora del server twitter non corrisponde all'ora del telefono.

+0

Ho provato, posso confermare che l'orologio è impostato correttamente. Funziona anche se passo i valori token e tokenSecret esistenti, ma non quando utilizzo quei valori da AccountManager. –

0

ho bisogno di essere in grado di utilizzare gli attuali utenti di dispositivi cinguettano credenziali

spiacenti, questo è not possible.

Problemi correlati