Spring Android Twitter回调网址

时间:2014-03-10 02:00:34

标签: java android twitter-oauth spring-social-twitter spring-android

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

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

enter image description here

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

1 个答案:

答案 0 :(得分:3)

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

请注意,在AndroidManifest.xml中,<intent-filter>指定了TwitterWebOAuthActivity,用于配置此回调网址。此过滤器告诉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);
}

如果您要修改自己应用的回调网址,则需要确保AndroidManifest.xmlres/values/connect_settings.xml中的配置相同。