在我的 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'] . $_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,这会在以后引发异常。