0

我需要使用 Twitter API 在我的 Android 应用程序中实现 OAuth 登录。我在 GitHub 上找到了一个很棒的项目(spring-android-samples ) 上找到了一个很棒的项目,其中有一个很好的例子,但是我对参数“回调 URL”有一个问题。

当我提交登录名和密码时,我的 android 应用程序会打开一个浏览器实例(带有回调 URL),而不是在后台处理响应:

在此处输入图像描述

有没有人必须实施类似的东西,可以帮助我吗?谢谢!

4

1 回答 1

3

您实际上不必x-android-org-springsource-twitterclient://twitter-oauth-response在 Twitter 应用程序设置中注册 URL。实际上,在这种情况下,在 Twitter 上配置的回调 URL 并不重要。回调 URL 在请求中发送到 Twitter 以获取 OAuth 请求令牌。

请注意,其中AndroidManifest.xml有一个指定<intent-filter>的用于TwitterWebOAuthActivity配置此回调 URL。此过滤器告诉 Android 将请求重定向到活动。

<activity
    android:name=".TwitterWebOAuthActivity"
    android:excludeFromRecents="true"
    android:noHistory="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:host="twitter-oauth-response"
            android:scheme="x-org-springsource-android-twitterclient" />
    </intent-filter>
</activity>

还要注意在res/values/connect_settings.xml字符串twitter_oauth_callback_url中再次配置。

<string name="twitter_oauth_callback_url">x-org-springsource-android-twitterclient://twitter-oauth-response</string>

此字符串用于TwitterWebOAuthActivity获取 Twitter 请求令牌。

@Override
protected OAuthToken doInBackground(Void... params) {
    // Fetch a one time use Request Token from Twitter
    return connectionFactory.getOAuthOperations().fetchRequestToken(getOAuthCallbackUrl(), null);
}

如果你想为自己的应用修改回调 URL,你需要确保在AndroidManifest.xml和中配置相同res/values/connect_settings.xml

于 2014-03-10T18:50:22.973 回答