Facebook Android sdk在身份验证上丢失重定向uri

时间:2011-10-11 04:19:37

标签: android facebook mobile

我在我的Android应用程序中使用Facebook android sdk。在开发我的开发版本时,我的应用程序一切正常。当我最终向公众发布我的应用程序时,当人们尝试验证我的应用程序时,facebook验证会发出一个丑陋的错误:

API Error code: 100
API Error description: Invalid parameter
Error Message: Requires valid redirect URI

似乎facebook认为我正在做一个浏览器重定向到他们并且缺少重定向uri来返回我的应用程序,但是我使用的是你没有发送重定向uri的android sdk,你有一个回调监听器:

facebook.authorize(this, new String[] { "email", "publish_stream" }, new FBLoginDialogListener());

就像我说这一切在开发过程中工作正常并且只在我的prod版本发布之后出现,所以我检查了开发应用程序设置和fb上的prod app设置,它们都是相同的。

其他人都看到了这个问题吗?

更新:当用户接受允许登录我的应用程序但似乎不接受我的权限时,我似乎只收到此错误。 hmmmmm。也许我没有处理某些情况,但这个错误对我来说仍然没有意义。

6 个答案:

答案 0 :(得分:8)

我通过在https://developers.facebook.com/apps

上禁用应用高级设置中的增强型身份验证对话框解决了这个问题

祝你好运

答案 1 :(得分:1)

我在Facebook上没有那么多工作,但我误解了Redirect URL。 在Facebook类中有一个参数REDIRECT_URI来重定向用户,如果它成功它不会将你重定向到浏览器,但它被称为Facebook sdk提供商

见这一行

public static final String REDIRECT_URI = "fbconnect://success";

在你的应用程序中检查这一行。我认为facebook API中有一些内容提供者,如fbconnect,因此它会在内部调用提供者可能是我错了。

感谢。

答案 2 :(得分:1)

我也有这样的问题:当我尝试要求新的扩展许可时,facebook会为我显示相同的错误消息。我想我得到了一个解决方法:尝试在一个请求中询问来自“用户和朋友权限”(即“user_status”)的新许可以及来自“扩展权限”(即“read_stream”)部分的新许可。 http://developers.facebook.com/docs/reference/api/permissions/中列出的权限 希望它也会对你有所帮助。

答案 3 :(得分:0)

我遇到了同样的问题。我的应用程序昨天完美运行,当我今天尝试运行它时,它显示完全相同的消息。我尝试的是重新安装应用程序并重新启动我的手机,但都没有奏效。然后我卸载Facebook for Android(不是我自己开发的应用程序),它运行得非常完美。不知道原因。也许尝试在手机上卸载Facebook for Android并查看它是否有效?

答案 4 :(得分:0)

这里的问题完全相同......已经追了好几个小时......

感谢上面的提示,我向前迈了一步。

我编写了一个更新用户状态的应用。使用新的Facebook布局,这与发布到用户墙相同。

似乎我需要同时拥有这两项权限:{“user_status”,“publish_stream”}。我想user_status让我可以访问状态对象,而publish_stream(这是一个“扩展”权限)给了我写访问权。

在尝试我找到的权限时要注意的一些事项如下。如果您更改了应用程序的权限,那么我建议您执行以下操作: - 使用计算机上的网络浏览器访问您的Facebook帐户。转到顶部主页旁边的箭头,选择帐户设置,然后选择左侧的应用程序。从此处删除您的应用。 - 在您的Android设备(或模拟器)上转到设置 - >应用程序 - >管理。然后卸载您的应用程序。之后,从同一菜单强制退出Facebook应用程序。

完成这些步骤后,您应该有一张关于使用不同权限重新部署应用程序的清单。我这是因为facebook应用程序正在缓存某些东西,并且权限已经记录在您的Facebook帐户中导致此问题。您可以在代码中实现更简洁的解决方案,这样,如果您在版本之间更改了应用程序的权限,那么就可以正确地选择它。

我的应用现在正在进行状态更新=)

答案 5 :(得分:0)

我通过选中嵌入式浏览器OAuth登录“和输入网址解决了这个问题,我的adobe air app用于浏览器嵌入FB身份验证

Facebook Advanced Settings