当用户登录凭据存储在浏览器中时,Android 上的 Twitter OAuth 回调出现问题



我已经将twitter4j集成到一个安卓应用程序中,在大多数情况下它可以无缝运行,但我注意到当用户指示将其登录凭据保存在浏览器中时,尝试使用Twitter进行身份验证时会出现零星问题。调用getOAuthRequestToken(callbackURL)后,android浏览器像往常一样打开,但随后浏览器弹出一个错误页面,如下所示:

Web page not available The web page at https://api.twitter.comtwitter-callback-uri:///?oath_token=.....................

因此,看起来正在发生的事情是浏览器被重定向到无效的URL。我认为重定向应该看起来像这样:推特回调 uri:///?oath_token=...............

为了提供更多信息,令牌请求如下所示:

rToken = twit.getOAuthRequestToken("twitter-callback-uri:///");

并在 android 清单中添加了一个意图过滤器来识别此 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 登录凭据是否保存在浏览器中。

我和你有同样的问题。我在问了我的:)后发现了你的问题看看这个

Twitter API 返回无效回调 - 无法授权

具体来说,看看我问题中的代码片段。

最新更新