加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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类假定没有签名请求,因此没有数据.

我有时遇到相同的行为,问题始终是,会话未正确建立.不幸的是,我不太确定,究竟是什么原因.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读