Я выполнил шаги, описанные здесь, чтобы создать вход в приложение Facebook: http://developers.facebook.com/docs/howtos/login/server-side-login/
И нахожусь на шаге 3. Я настраиваю это на локальном хосте для разработки, а затем публикую на веб-сайтах Azure с другим идентификатором приложения. Я бы хотел, чтобы это сначала работало на локальном хосте. (Я еще не пробовал это с доменом, отличным от localhost.)
На моей странице конфигурации приложения Facebook я установил пару соответствующих полей: URL-адрес сайта: http://localhost: 8052/ (добавлены пробелы, чтобы разрешить отправку в Stack Overflow) Домены приложений: localhost
main.php перенаправляет на страницу входа, если не установлен код Facebook. Это прекрасно работает.
<head>
<?php
if(!isset($_SESSION['code'])) {
echo ('<meta http-equiv="REFRESH" content="0;url=/login.php" />');
}
?>
</head>
login.php перенаправляет на страницу входа в Facebook, используя код, скопированный из их примера.
<?php
include '/lib/url.php';
$app_id = "XXXXX";
$app_secret = "XXXXX";
$my_url = CreateUrlForPage('welcome.php');
session_start();
$code = '';
if(!isset($_REQUEST["code"])) {
$_SESSION['state'] = md5(uniqid(rand(), TRUE)); // CSRF protection
$dialog_url = "https://www.facebook.com/dialog/oauth?client_id="
. $app_id . "&redirect_uri=" . urlencode($my_url) . "&state="
. $_SESSION['state'];
echo $my_url.'<br/>';
echo $dialog_url.'<br/>';
echo("<script> top.location.href='" . $dialog_url . "'</script>");
}
?>
Очевидно, я запутал свой идентификатор приложения выше.
URL-адрес, сгенерированный моей функцией «CreateUrlForPage», выглядит нормально, как и URL-адрес входа в facebook:
http://localhost:8052/welcome.php
https://www.facebook.com/dialog/oauth?client_id=XXXX&redirect_uri=http%3A%2F%2Flocalhost%3A8052%2Fwelcome.php&state=XXXX
(Опять же, здесь некоторая запутанность. Реальные значения выглядели нормально. Первое было целым числом, а второе — длинной шестнадцатеричной строкой.)
Когда я перехожу на http://localhost: 8052/login.php, страница перенаправляется на Facebook и выдает совершенно бесполезную ошибку: «Произошла ошибка. Повторите попытку позже».
Я просмотрел пару других сообщений о переполнении стека, но они не решили мою проблему.
Ошибка, которую я получаю, выглядит так же, как описанная здесь: Ошибка входа в приложение Facebook на локальном хосте Предлагается установить URL-адрес домена и сайта, что я и сделал.
Также есть ссылка на этот вопрос: Запуск приложения Facebook на локальном хосте Опять же, они предлагают Адрес сайта. Они также говорят о app-canvas, который я не использую, и я не понимаю, как это будет связано с входом в систему.
Что бы это ни стоило, прежде чем я установил URL-адрес сайта и домен, я получил другую ошибку, которая сказала мне, что мне нужно установить URL-адрес сайта.