可以使用facebook javascript/php SDK';s";“谈话”;如果第三方Cookie被禁用,是否会相互关联?facebook->;getUser()返回0

可以使用facebook javascript/php SDK';s";“谈话”;如果第三方Cookie被禁用,是否会相互关联?facebook->;getUser()返回0,javascript,php,facebook,facebook-graph-api,cookies,Javascript,Php,Facebook,Facebook Graph Api,Cookies,我正在建立一个网站,facebook javascript和php SDK正在一起工作。。。它通常运行良好,但是--我发现对于一台使用chrome的测试机器,当我从客户端/javascript端执行FB登录时,后端的PHP sdk将无法识别它--facebook::getUser()函数返回0 经过大量的挠头和谷歌搜索都没有结果后,我通过chrome开发工具意识到/注意到,对于正在工作的机器,我看到了名为“PHPSESSID”的cookies以及包含facebook uid的“C_user”和其

我正在建立一个网站,facebook javascript和php SDK正在一起工作。。。它通常运行良好,但是--我发现对于一台使用chrome的测试机器,当我从客户端/javascript端执行FB登录时,后端的PHP sdk将无法识别它--facebook::getUser()函数返回0

经过大量的挠头和谷歌搜索都没有结果后,我通过chrome开发工具意识到/注意到,对于正在工作的机器,我看到了名为“PHPSESSID”的cookies以及包含facebook uid的“C_user”和其他名称/值对;而在非工作机器上,我只看到“PHPSESSID”。然后我发现/意识到非工作机器上的chrome禁用了第三方cookie

这显然就是问题所在。。我在谷歌上做了更多的搜索,但我找不到一个明确的答案,究竟是有解决办法还是更好的方法


如果用户/浏览器禁用第三方Cookie,是否就不可能集成js+php sdk?否则,我的PHP后端代码将如何确定我与哪个facebook用户打交道?

从javascript登录后,您可以编写自己的第一方cookie,其中包含登录用户的用户id。如果需要,也可以包含访问令牌,但出于安全原因,我不建议这样做。

我已经解决了这个问题,使用php SDK getLoginUrl()在页面上提供了一个登录链接,并让用户使用它,而不是对javascript login()进行客户端调用功能或使用facebook社交/登录插件。它在某些时候可能会遇到缺点,但目前看来,在禁用了第三方cookie的机器上,这似乎是可行的

谢谢您的建议。。我想试试,但我想可能不行。我开始认为是JS SDK本身(和/或客户端的我的JS)在禁用第三方cookie时无法访问fb信息/cookie。。换句话说,我没有访问用户ID的权限,因此无法设置第一方cookie。也许如果我使用facebook登录流“for web”而不是JS SDK,我就能获得它并设置第一方cookie。。