Twitter との統合に成功した以前の Android アプリのコードがあります。このコードを新しいアプリにコピーし、新しいアプリの と を変更しcallback-url
ましconsumer-key
たconsumer-secret
。
twitter4j
ライブラリを使用して、RequestToken
次のように認証 URLを取得できます。
Twitter twitter = new TwitterFactory().getInstance();
twitter.setOAuthConsumer(myConsumerKey, myConsumerSecret);
RequestToken requestToken = twitter.getOAuthRequestToken(myCallbackUrl);
String authenticationUrl = requestToken.getAuthenticationURL()
にRequestToken
は、nulltoken
以外の値、null 以外のtokenSecret
値、および null 値がありsecretKeySpec
ます。認証 URL の形式は次のとおりです。
http://api.twitter.com/oauth/authenticate?oauth_token=...
この URL を my にロードするWebView
と、次のページが表示されます。
ここで私は立ち往生しています。ボタンをクリックするとSign In
、この同じページが読み込まれ続けます。他には何もありません。ただし、ボタンをクリックするとCancel
、次のページが表示されます。
Return to Fan League Beko BBL
ボタンをクリックすると、このページでのみ、値としてmy を持つパラメーターを使用してcallback-url
呼び出されます。以前にこのようなことを見て、サインイン要求の処理を妨げている原因を知っている人はいますか?denied
oauth_token
更新 1:デスクトップ ブラウザーから認証 URL とボタンを試してみましたが、
Sign In
期待どおりに動作し、応答を処理してからコールバック URL を呼び出します。WebView
Androidアプリで試してみると失敗します。複数の Android デバイスとタブレットで試しました。私もJavaScriptが有効になっているWebView
ので、そうではありません。アイデアは大歓迎です。私はアイデアがありません!更新 2:でデバッグ モードのコード トレースを行った
WebView
ところ、ボタンWebViewClient
をクリックするとメソッドが呼び出されず、次の 3 つのメソッドが (順番に) 呼び出されることがわかりました。、。これらのメソッドの値は次のとおりです: 、つまり、パラメーターは認証 URL から取り除かれています。おそらく、これはリクエストとして扱われているリクエストであり、この同じページがロードされ続けるのはなぜですか? このボタンの押下を適切に処理するために私ができることはありますか?Sign In
shouldOverrideUrlLoading(WebView webView, String url)
onPageStarted(WebView view, String url, Bitmap favicon)
onLoadResource(WebView view, String url)
onPageFinished(WebView view, String url)
url
https://api.twitter.com/oauth/authenticate
oauth_token
POST
GET
Sign In