Php Facebook应用程序结果在本地和Heroku上各不相同
在我的facebook应用程序中,有两个文件index.php和write.php使用以下基本代码:Php Facebook应用程序结果在本地和Heroku上各不相同,php,facebook,facebook-graph-api,heroku,facebook-php-sdk,Php,Facebook,Facebook Graph Api,Heroku,Facebook Php Sdk,在我的facebook应用程序中,有两个文件index.php和write.php使用以下基本代码: require_once('AppInfo.php'); if (substr(AppInfo::getUrl(), 0, 8) != 'https://' && $_SERVER['REMOTE_ADDR'] != '127.0.0.1') { header('Location: https://'. $_SERVER['HTTP_HOST'] . $_SERVE
require_once('AppInfo.php');
if (substr(AppInfo::getUrl(), 0, 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请求,write.php会向Facebook发送查询并将结果写入文本文件。php使用相同的代码初始化Facebook对象
当在本地进行测试时,它可以正常工作,但在上传到Heroku后,它会给出任意结果。$user\u id为空且代码无法超出if($user\u id)或$user\u id的值为0,这将在以后引发异常。Facebook SDK将登录数据存储在会话中。由于对
write.php
的AJAX请求没有发送完整的facebook帖子数据,facebook类假定没有签名请求,因此没有数据
我曾经遇到过同样的行为,问题总是在于会话没有正确建立。不幸的是,我不太确定确切的原因是什么。这两种环境都是64位的吗?我的本地计算机是32位的。这有什么不同?我最初的问题是关于32位和64位环境中整数的长度。Facebook API可能会将数字视为字符串,并避免这种限制。但是,结果为0表示用户未登录。用户在使用此代码之前是否经过身份验证?