非开发用户的ID始终为0

时间:2014-04-04 13:17:52

标签: php facebook facebook-javascript-sdk

在遇到开发之前,我遇到了一个必须解决的严重问题。

我的老板创建了应用程序,对他而言,它完全符合预期 - 用户登录,数据可访问,一切正常。但对于其他每个用户,$ facebook-> getUser()总是返回0,无论如何。显然,我登录了facebook,应用程序中还有一个登录链接,但点击它并不起作用,没有任何变化。

此问题仅发生在未以任何方式连接到应用的用户身上!

我几天前向该应用确认了我的开发人员请求,它现在适用于我的帐户,之前它不起作用,不适合我,不适用于我们尝试的任何其他用户,无论应用是公开的还是在开发模式下,这在技术上不应该用于身份验证。

我们尝试了很多东西,最终在互联网上共享现有代码,例如本文底部的代码:http://www.thegeekstuff.com/2014/03/develop-facebook-app/ (当然,有我们自己的应用程序ID和秘密) 并不是说它改变了什么,而是为了给你一个准备好的代码示例。

即使我删除了以下所有内容" $ user = $ facebook-> getUser();"然后在它之后放置echo $user; die();,它总是将用户ID显示为0。

我注意到另一件可能有助于解决此问题的方法如下:使用文章中的相同代码,我的老板' session始终包含多个变量,但是当我用非开发用户打开应用程序时,首先只有" fb_app-id_state"变量,当我刷新页面时,它被删除,会话为空。如果我再次刷新页面,则会使用不同的值再次创建变量,再次刷新并再次刷新,依此类推。

经过一天努力让这个狗屎与PHP一起工作后,我转而使用JS SDK。显然它也不起作用,但是,我还没有收到老板的具体信息,因为我自己没有假帐户来测试它。

显而易见的问题是:发生了什么以及为什么认证不能按预期工作?

修改:我的代码 - http://pastebin.com/qCPtfTHs

1 个答案:

答案 0 :(得分:0)

您需要查找应用设置。只有所有者,app admin,dev,才能在沙盒模式下使用您的应用程序。所有其他用户此应用程序不工作或工作越野车。删除测试模式,并将应用程序置于实时模式。