为什么 Facebook PHP SDK getUser() 总是返回 0?
在 Facebook 集成网站验证用户身份的过程中,这是对于 PHP SDK 的 getUser() 函数返回正确的用户 ID 至关重要。但是,一些开发人员遇到这样的问题:即使在用户授权应用程序之后,此函数始终返回 0。
理解问题
该函数检查 $_REQUEST 超全局变量code参数,由Facebook授权后设置。但是,在某些环境中,$_REQUEST 超全局变量可能无法与 $_GET、$_POST 和 $_COOKIE 正确合并。
解决方案
一种解决方案是手动将这些超全局变量合并到一个新变量中,如修改后的 getCode() 函数所示下面:
protected function getCode() { $server_info = array_merge($_GET, $_POST, $_COOKIE); if (isset($server_info['code'])) { // Rest of the function logic... } }
其他注意事项
除了 getCode() 修复之外,确保在 Facebook 开发者门户中正确配置以下设置也很重要:
这些设置帮助Facebook识别授权的应用程序并将用户重定向到正确的位置授权后。
结论
作者通过正确合并 $_REQUEST 超全局变量并确保 Facebook 开发者门户中的设置准确,开发者可以解决 Facebook PHP SDK getUser() 返回 0 的问题。这使得网站能够与 Facebook 无缝集成并检索用户信息以获得定制体验。
以上是为什么 Facebook PHP SDK 的 `getUser()` 总是返回 0?的详细内容。更多信息请关注PHP中文网其他相关文章!