我正在尝试让OAuth为服务提供商网站工作。在回调之前,一切都很顺利。它实际上是使用正确的URL回调(我在提供商的注册网站上指定的URL以及对provider.retrieveRequestToken()的调用
我这样做:
provider.retrieveRequestToken(消费者,“my-app:///”);
我实际得到的网址正是我所期待的 - “my-app:///?[包括我的访问令牌在内的一堆参数]”
但此时浏览器显示我无权访问该网址。我的清单设置如下:
<activity android:name=".Selector"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<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="my-app"/>
</intent-filter>
</activity>
我错过了什么吗?也许是许可?
答案 0 :(得分:0)
我在SMS Backup+中实现了基于意图的OAuth回调。从用户反馈我发现一些浏览器(例如Opera Mini)实际上不能正确处理非http方案,所以这也是问题所在。首先使用股票浏览器尝试使用模拟器。
某些手机(Droid X)默认情况下甚至附带破碎的浏览器,因此此方法无法跨设备可靠地运行。我目前正在寻找更好的解决方案,另一种方法是使用OOB回调处理,但这不是非常用户友好。
答案 1 :(得分:0)
尝试在manifest.xml中添加互联网访问权限
<uses-permission android:name="android.permission.INTERNET" />