php – Facebook应用程序结果在本地和Heroku上有所不同
发布时间:2020-12-13 22:47:10 所属栏目:PHP教程 来源:网络整理
导读:在我的Facebook应用程序中,有两个文件index.php和write.php使用这个基本代码: require_once('AppInfo.php');if (substr(AppInfo::getUrl(),8) != 'https://' $_SERVER['REMOTE_ADDR'] != '127.0.0.1') { header('Location: https://'. $_SERVER['HTTP_HOST'
在我的Facebook应用程序中,有两个文件index.php和write.php使用这个基本代码:
require_once('AppInfo.php'); if (substr(AppInfo::getUrl(),8) != 'https://' && $_SERVER['REMOTE_ADDR'] != '127.0.0.1') { header('Location: https://'. $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); exit(); } require_once('utils.php'); require_once('sdk/src/facebook.php'); $facebook = new Facebook(array( 'appId' => AppInfo::appID(),'secret' => AppInfo::appSecret(),)); $user_id = $facebook->getUser(); 加载index.php后,会向write.php发送一个ajax请求,该请求会向Facebook发送查询并将结果写入文本文件. write.php使用相同的代码初始化Facebook对象. 这在本地测试时工作正常,但在上传到Heroku后,它会产生任意结果. $user_id为null且代码无法超出if($user_id)或$user_id的值为0,这会在以后引发异常. 解决方法
Facebook SDK将登录数据存储在会话中.由于您对write.php的AJAX请求没有发送完整的facebook POST数据,因此facebook类假定没有签名请求,因此没有数据.
我有时遇到相同的行为,问题始终是,会话未正确建立.不幸的是,我不太确定,究竟是什么原因. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |