Android 2.3上的Twitter集成效果很好但不是3.2 ...为什么?

时间:2012-06-15 09:05:10

标签: android android-3.0-honeycomb android-twitter

我与我的Android应用程序进行了一次推特集成。 我使用this精彩教程,this twitter integration source.

我从三月开始开发到android,所以我不是专业人士或其他什么,但我知道有一件事。

如果您为Android 2.3+和Android 4+编写了正常运行的代码,那么Android(3+)的平板电脑版本通常会出现SOMETHING以破坏您的工作。我见过很多这种情况......

我从教程中获得的Twitter集成在Android 2.3和4上运行良好,但它在Android 3.2(三星Galaxy Tab)上做了一些错误的事情

这很奇怪,因为问题出在 OAUth检索请求令牌,我无法弄清楚为什么......

我在不同的Androids上运行了相同的代码。 在2.3上OAuth使一切正常,twitter登录,我可以发推文消息,从3.1有一个错误,这里是logcat:

06-19 02:15:21.760: W/DefaultRequestDirector(13255): Authentication error: Unable to respond to any of these challenges: {}
06-19 02:15:21.760: E/com.KeySoft.TwitterIntegration.OAuthRequestTokenTask(13255): Error during OAUth retrieve request token
06-19 02:15:21.760: E/com.KeySoft.TwitterIntegration.OAuthRequestTokenTask(13255): 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.
06-19 02:15:21.760: E/com.KeySoft.TwitterIntegration.OAuthRequestTokenTask(13255):  at oauth.signpost.AbstractOAuthProvider.handleUnexpectedResponse(AbstractOAuthProvider.java:239)
06-19 02:15:21.760: E/com.KeySoft.TwitterIntegration.OAuthRequestTokenTask(13255):  at oauth.signpost.AbstractOAuthProvider.retrieveToken(AbstractOAuthProvider.java:189)
06-19 02:15:21.760: E/com.KeySoft.TwitterIntegration.OAuthRequestTokenTask(13255):  at oauth.signpost.AbstractOAuthProvider.retrieveRequestToken(AbstractOAuthProvider.java:69)
06-19 02:15:21.760: E/com.KeySoft.TwitterIntegration.OAuthRequestTokenTask(13255):  at com.KeySoft.TwitterIntegration.OAuthRequestTokenTask.doInBackground(OAuthRequestTokenTask.java:70)
06-19 02:15:21.760: E/com.KeySoft.TwitterIntegration.OAuthRequestTokenTask(13255):  at com.KeySoft.TwitterIntegration.OAuthRequestTokenTask.doInBackground(OAuthRequestTokenTask.java:1)
06-19 02:15:21.760: E/com.KeySoft.TwitterIntegration.OAuthRequestTokenTask(13255):  at android.os.AsyncTask$2.call(AsyncTask.java:252)
06-19 02:15:21.760: E/com.KeySoft.TwitterIntegration.OAuthRequestTokenTask(13255):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
06-19 02:15:21.760: E/com.KeySoft.TwitterIntegration.OAuthRequestTokenTask(13255):  at java.util.concurrent.FutureTask.run(FutureTask.java:137)
06-19 02:15:21.760: E/com.KeySoft.TwitterIntegration.OAuthRequestTokenTask(13255):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1081)
06-19 02:15:21.760: E/com.KeySoft.TwitterIntegration.OAuthRequestTokenTask(13255):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:574)
06-19 02:15:21.760: E/com.KeySoft.TwitterIntegration.OAuthRequestTokenTask(13255):  at java.lang.Thread.run(Thread.java:1020)

所以请有人解释一下,为什么Android 3+总是做的事情不同于它的previsous和未来版本,因为在我看来这是一个身份验证问题,为什么我无法检索请求令牌,如果我运行完全相同的代码,使用所需的密钥和签名调用相同的url-s。

1 个答案:

答案 0 :(得分:2)

确保在有问题的设备上相应地设置时区和日期...: - )