我已将 twitter4j 集成到一个 android 应用程序中,并且在大多数情况下它可以无缝运行,但我注意到当用户指示将其登录凭据保存在浏览器中时,尝试使用 twitter 进行身份验证时会发生零星问题。调用 getOAuthRequestToken(callbackURL) 后,android 浏览器照常打开,但随后浏览器弹出如下错误页面:
Web page not available
The web page at https://api.twitter.comtwitter-callback-uri:///?oath_token=.....................
因此,看起来正在发生的事情是浏览器被重定向到无效的 url。我认为重定向应该看起来像这样:twitter-callback-uri:///?oath_token=................
为了提供更多信息,对令牌的请求如下所示:
rToken = twit.getOAuthRequestToken("twitter-callback-uri:///");
并且在 android manifest 中添加了一个意图过滤器来识别这个 uri。意图过滤器如下所示:
<activity android:name=".LoginActivity"
android:screenOrientation="unspecified"
android:finishOnTaskLaunch="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="twitter-callback-uri"/>
</intent-filter>
</activity>
这通常有效,唯一的问题似乎是用户的 twitter 登录凭据是否保存在浏览器中。