2014-04-04 43 views
0

我遇到了一个严重的问题,在继续开发之前必须解决。非开发用户始终有ID 0

我的老板创建了应用程序,对他来说,它的工作方式与预期完全一样 - 用户已登录,数据可访问,一切正常。但对于其他用户,$ facebook-> getUser()总是返回0,无论如何。显然,我登录Facebook,在应用程序中也有一个登录链接,但点击它不起作用,没有任何变化。

只有没有以任何方式连接到应用程序的用户才会出现此问题!

前几天我确认了我的开发者对该应用程序的请求,现在它适用于我的帐户,在此之前它不工作,不适用于我,不适用于我们尝试过的任何其他用户,无论该应用程序是公共或开发模式,这在技术上应该无关紧要。

我们尝试了很多东西,最终还是现有的互联网上共享代码,像这篇文章的底部代码:http://www.thegeekstuff.com/2014/03/develop-facebook-app/ (用我们自己的应用程序ID和秘密,当然) 不在于它改变任何东西,只是给你一个现成的代码示例。

即使我删除了下面的所有内容“$ user = $ facebook-> getUser();”并在此之后放置echo $user; die();,它总是显示用户ID为0.

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

经过一天试图让这个狗屎与PHP工作,我切换到JS SDK。显然它也行不通,但是,我还没有收到我老板的具体信息,因为我没有一个假账户来自己测试它。

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

编辑:我的代码 - http://pastebin.com/qCPtfTHs

+0

你能发布你的代码吗?并且在Facebook配置中的“baseurl”与App仪表板中的网站URL相同?他们必须是相同的 –

+0

@AdamAzad添加链接到代码。该应用程序是一个页面选项卡应用程序,只有一个页面选项卡URL,并且该应用程序只有一个页面。我不知道你在哪里提到'baseurl'。我的情况真的需要吗? – jurchiks

回答

0

你需要寻找的应用程序设置。只有所有者,应用管理员,开发人员才能在沙箱模式下使用您的应用。所有其他用户这个应用程序不工作或工作马车。删除测试模式,并在实时模式下放出应用程序。

+0

“无论应用程序是公开还是开发模式”。 – jurchiks