我需要使用 Twitter API 在我的 Android 应用程序中实现 OAuth 登录。我在 GitHub 上发现了一个很棒的项目( spring-android-samples ),其中有一个非常好的示例,但是我在参数“回调 URL”方面遇到了问题。
当我提交登录名和密码时,我的 Android 应用程序会打开一个浏览器实例(带有回调 URL),而不是在后台处理响应:
有人必须实现类似的东西并且可以帮助我吗? 谢谢!
最佳答案
您实际上不必注册 x-android-org-springsource-twitterclient://twitter-oauth-response
包含 Twitter 应用程序设置的 URL。事实上,在这种情况下,Twitter 上配置的回调 URL 并不重要。回调 URL 在请求中发送到 Twitter 以获取 OAuth 请求 token 。
请注意,在AndroidManifest.xml
内有一个指定的<intent-filter>
对于TwitterWebOAuthActivity
它配置此回调 URL。此过滤器告诉 Android 将请求重定向到 Activity。
<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 请求 token 。
@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
.
关于java - Spring Android Twitter 回调 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22290901/