在我的Android应用程序中整合Twitter时发生错误
问题描述:
我正在尝试在我的Android应用程序中整合Twitter。我检查Android10和abhinavblog的代码,我已经改变了只CONSUMER_KEY和CONSUMER_SECRET但我发现了错误的代码 -在我的Android应用程序中整合Twitter时发生错误
@Override
protected Void doInBackground(Void... params) {
try {
Log.i(TAG, "Retrieving request token from Google servers");
final String url = provider.retrieveRequestToken(consumer, Constants.OAUTH_CALLBACK_URL);
Log.i(TAG, "Popping a browser with the authorize URL : " + url);
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)).setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_FROM_BACKGROUND);
context.startActivity(intent);
} catch (Exception e) {
Log.e(TAG, "Error during OAUth retrieve request token", e);
}
return null;
}
logcat的这个错误是 - 块
$02-22 11:24:48.012: W/KeyCharacterMap(515): No keyboard for id 0
02-22 11:24:48.012: W/KeyCharacterMap(515): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
02-22 11:24:53.343: I/com.ecs.android.sample.twitter.PrepareRequestTokenActivity(515): Starting task to retrieve request token.
02-22 11:24:53.352: I/com.ecs.android.sample.twitter.OAuthRequestTokenTask(515): Retrieving request token from Google servers
02-22 11:24:54.374: D/dalvikvm(515): GC_FOR_MALLOC freed 10292 objects/500672 bytes in 91ms
02-22 11:24:54.493: D/dalvikvm(515): GC_FOR_MALLOC freed 2064 objects/289696 bytes in 71ms
02-22 11:24:54.503: D/NativeCrypto(515): Freeing OpenSSL session
02-22 11:24:55.022: W/DefaultRequestDirector(515): Authentication error: Unable to respond to any of these challenges: {}
02-22 11:24:55.022: I/global(515): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required.
02-22 11:24:55.022: E/com.ecs.android.sample.twitter.OAuthRequestTokenTask(515): Error during OAUth retrieve request token
02-22 11:24:55.022: E/com.ecs.android.sample.twitter.OAuthRequestTokenTask(515): oauth.signpost.exception.OAuthNotAuthorizedException: Authorization failed (server replied with a 401). This can happen if the consumer key was not correct or the signatures did not match.
02-22 11:24:55.022: E/com.ecs.android.sample.twitter.OAuthRequestTokenTask(515): at oauth.signpost.AbstractOAuthProvider.handleUnexpectedResponse(AbstractOAuthProvider.java:239)
02-22 11:24:55.022: E/com.ecs.android.sample.twitter.OAuthRequestTokenTask(515): at oauth.signpost.AbstractOAuthProvider.retrieveToken(AbstractOAuthProvider.java:189)
02-22 11:24:55.022: E/com.ecs.android.sample.twitter.OAuthRequestTokenTask(515): at oauth.signpost.AbstractOAuthProvider.retrieveRequestToken(AbstractOAuthProvider.java:69)
02-22 11:24:55.022: E/com.ecs.android.sample.twitter.OAuthRequestTokenTask(515): at com.ecs.android.sample.twitter.OAuthRequestTokenTask.doInBackground(OAuthRequestTokenTask.java:55)
02-22 11:24:55.022: E/com.ecs.android.sample.twitter.OAuthRequestTokenTask(515): at com.ecs.android.sample.twitter.OAuthRequestTokenTask.doInBackground(OAuthRequestTokenTask.java:1)
02-22 11:24:55.022: E/com.ecs.android.sample.twitter.OAuthRequestTokenTask(515): at android.os.AsyncTask$2.call(AsyncTask.java:185)
02-22 11:24:55.022: E/com.ecs.android.sample.twitter.OAuthRequestTokenTask(515): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
02-22 11:24:55.022: E/com.ecs.android.sample.twitter.OAuthRequestTokenTask(515): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
02-22 11:24:55.022: E/com.ecs.android.sample.twitter.OAuthRequestTokenTask(515): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
02-22 11:24:55.022: E/com.ecs.android.sample.twitter.OAuthRequestTokenTask(515): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
02-22 11:24:55.022: E/com.ecs.android.sample.twitter.OAuthRequestTokenTask(515): at java.lang.Thread.run(Thread.java:1096)
为什么验证错误:无法应对任何这些挑战:{}为空?
我给Twitter应用程序注册的读写权限。
任何帮助将不胜感激。
答
您的CONSUMER_KEY和CONSUMER_SECRET不正确,它们应该是您在Twitter上注册的应用程序。
专业。但是我已经在Twitter上注册过的应用程序提供了正确的密钥,即使我已经尝试过重置密钥选项。而且我还在Twitter上注册了一个新的应用程序,并且使用了新密钥并在我的代码中进行了更改,同时我也得到了相同的错误。我被困在这里totaly。请帮助 – 2012-02-15 07:43:18
Chk出这个问题,你可能会得到一些解决方案,http://stackoverflow.com/questions/3315669/android-twitter-retrieveretoken_401-on-request-token – voidRy 2012-02-15 08:32:42
感谢您的快速回复,你可以告诉我使用CALLBACK URL。我应该写什么,注册应用程序到Twitter网站,应该在java文件中,什么应该在XML文件中 – 2012-02-15 09:29:39