我有来自以前的 Android 应用程序的代码,我成功地与 Twitter 集成。我已将此代码复制到一个新应用程序中,并为我的新应用程序更改了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
非空token
值、非空tokenSecret
值和空secretKeySpec
值。身份验证 url 的格式如下:
http://api.twitter.com/oauth/authenticate?oauth_token=...
我在我的中加载了这个 url,WebView
我看到了以下页面:
我在这里卡住了。当我单击Sign In
按钮时,只是同一页面不断加载。没有其他的。但是,当我单击该Cancel
按钮时,我会看到以下页面:
只有在我单击Return to Fan League Beko BBL
按钮时才会在此页面上callback-url
调用我,并使用一个denied
以 myoauth_token
作为其值的参数。任何人以前都见过这样的事情并且知道什么可能会阻止我的登录请求被处理???
更新 1:我已经尝试了
Sign In
来自桌面浏览器的身份验证 URL 和按钮,它按预期工作,处理响应,然后调用回调 URL。WebView
在我的 Android 应用程序中尝试它只是失败了。我已经在多个 Android 设备和平板电脑上尝试过。我也启用了 JavaScript,WebView
所以不是这样。想法最受欢迎。我没主意了!更新 2:我刚刚对我
WebView
的 's进行了一些调试模式代码跟踪,WebViewClient
我看到当我单击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
参数已从认证 url 中剥离。也许这是一个POST
被视为请求的GET
请求,因此为什么同一页面不断加载?有什么想法可以Sign In
正确处理此按钮按下吗?