私は自分のAndroidアプリにTwitterを統合しました。このTwitter統合ソースを使用して、このすばらしいチュートリアルを使用しました。
私は3月からAndroidに開発しているので、プロなどではありませんが、知っていることが1つあります。
Android2.3以降およびAndroid4以降で適切に機能するコードを作成する場合、Androidのタブレットバージョン(3以降)が常に存在し、通常、作業を台無しにするために何かを実行します。私はこれらの状況の多くを見ました...
チュートリアルから作成したTwitter統合は、Android 2.3および4でうまく機能しますが、Android 3.2(Samsung Galaxy Tab)ではバグがあります。
問題はOAUthの取得要求トークンにあるため、非常に奇妙です。理由がわかりません...
もちろん、さまざまなAndroidでまったく同じコードを実行しました。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+は以前のバージョンや将来のバージョンとは常に異なることをするのですか、それは認証の問題であるように思われるので、まったく同じコードを実行した場合にリクエストトークンを取得できないのはなぜですか?必要とされたのとまったく同じキーと署名を持つまったく同じURL。