我正在构建一个与 facebook javascript&php SDK 一起工作的网站...它通常运行良好,但是 - 我发现对于一台使用 chrome 的测试机,当我从客户端/javascript 端执行 FB 登录时,后端的 PHP sdk 无法识别它——facebook::getUser() 函数返回 0
经过大量的绞尽脑汁和谷歌搜索无济于事后,我通过 chrome 开发工具意识到/注意到,对于正在工作的机器,我看到名为“PHPSESSID”的 cookie 以及包含我的 facebook uid 的“C_user” ,以及其他名称/值对;而在非工作机器上,我只看到“PHPSESSID”。然后我发现/意识到非工作机器上的 Chrome 禁用了第 3 方 cookie。
所以这显然是问题所在..我做了更多的谷歌搜索,但我无法找到是否有解决方法或更好的方法的明确答案。
如果用户/浏览器禁用第 3 方 cookie,是否根本无法集成 js+php sdk?我的 PHP 后端代码如何确定我正在处理的 Facebook 用户是哪个?
最佳答案
我通过使用 php-SDK getLoginUrl() 在页面上提供登录链接并让用户使用该链接来解决此问题,而不是对 javascript login() 函数进行客户端调用或使用 facebook社交/登录插件。它可能会在某些时候遇到缺点,但目前这似乎适用于禁用第 3 方 cookie 的计算机
关于javascript - 如果禁用第 3 方 cookie,facebook javascript/php SDK 的 "talk"可以互相发送吗? facebook->getUser() 返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19463528/