Как настроить приложение Heroku для обучения на Facebook с помощью PHP? - PullRequest
1 голос
/ 17 октября 2011

Я пытаюсь запустить базовое приложение Heroku на Facebook (http://devcenter.heroku.com/articles/facebook). Следуя инструкциям, развертывание на Heroku прошло нормально. Пытаясь развернуть локально, я получил следующую ошибку

Ошибка разбора: синтаксическая ошибка, неожиданное ':' в C: \ Program Files \ Apache Software Foundation \ Apache2.2 \ htdocs \ AppInfo.php в строке 36 ".

Я понял, что есть какая-то проблема с функцией getHome, нашел ответ на похожую проблему с python здесь - Проблема с запуском учебника по Heroku для Facebook с Python , но я все еще не могу понять, как это должно быть сделано для PHP.

Я попытался изменить функцию getHome на return http://127.0.0.1:5000/ (например, URL-адрес сайта, который я указал в своем приложении Facebook), но потом получаю, что браузер не может подключиться к нему.

У меня Safari 2.2 работает локально, обычный PHP-файл Hello world работает нормально.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 19 октября 2011

Приложение использует оператор PHP 5.3 для выполнения операции "или равно" в этой строке. Это работает так:

$foo ?: "bar";

Что означает: примите значение $ foo, если установлено, в противном случае "bar". Чтобы сделать это совместимым с более ранними версиями PHP, вам придется переписать его, используя другой оператор и функции. Как:

isset($foo) ? $foo : "bar";

Итак, возвращаясь к приложению, вы можете исправить это с помощью:

$protocol = isset($_SERVER['HTTP_X_FORWARDED_PROTO']) ? $_SERVER['HTTP_X_FORWARDED_PROTO'] : "http";
return $protocol . "://" . $_SERVER['HTTP_HOST'] . "/";

Эта публикация содержит больше информации о PHP или равных и альтернативах.

0 голосов
/ 18 октября 2011

Глядя на ваш комментарий, то, что вы делаете, неправильно. Должно быть

return ($_SERVER['HTTP_X_FORWARDED_PROTO']) ?: "http:" . "://" . $_SERVER['HTTP_HOST'] . "/";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...