Ошибка API API API API 400

Я пытаюсь использовать api для запуска запроса fql. Я настроил все на PHP, вот как выглядит код:

$app_id = 'APP_ID'; $app_secret = 'APP_secret'; $my_url = "url.com/facebook.php"; $code = $_REQUEST["code"]; //auth user if(empty($code)) { $dialog_url = 'https://www.facebook.com/dialog/oauth?client_id=' . $app_id . '&redirect_uri=' . urlencode($my_url) ; echo("<script>top.location.href='" . $dialog_url . "'</script>"); } //get user access_token $token_url = 'https://graph.facebook.com/oauth/access_token?client_id=' . $app_id . '&redirect_uri=' . urlencode($my_url) . '&client_secret=' . $app_secret . '&code=' . $code; $access_token = file_get_contents($token_url); // Run fql query $fql_query_url = 'FQL_Query'; $fql_query_result = file_get_contents($fql_query_url); $fql_query_obj = json_decode($fql_query_result, true); 

Все работало отлично, используя код выше, но в последнее время я решил изменить свою структуру URL и вместо доступа к странице через url.com/facebook.php я хотел бы получить к ней доступ через url.com/#facebook .

Когда я сделал это изменение переменной $ my_url, я получил следующие ошибки.

 [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request 

Есть идеи? Благодаря!

Итак, начнем с настроек приложения facebook. В настройках приложения вы определяете «URL холста», и если вы решите его изменить, вам необходимо изменить его не только в коде, но и в настройках приложения в приложении разработчика.

Другое дело, что если facebook назвал вашу страницу URL-адресом, тогда вы должны использовать тот же самый url в параметре redirect_uri, когда собираетесь для аутентификации, это в документации ( http://developers.facebook.com/docs/authentication/ ) , Это то, что они пишут о redirect_uri:

Параметр redirect_uri должен находиться на пути к URL-адресу сайта, указанному в разделе «Веб-сайт» на вкладке «Сводка» в приложении «Разработчик». Если это корень домена, он должен заканчиваться конечной косой чертой. Обратите внимание: ваш redirect_uri не может быть перенаправителем.

а также

Чтобы аутентифицировать ваше приложение, вы должны передать код авторизации и секрет вашего приложения в конечную точку маркера API Graph вместе с тем же самым redirect_uri, что и выше, на https://graph.facebook.com/oauth/access_token

Теперь ваше решение изменить URL-адрес, чтобы иметь хэш в нем (#), не является хорошим. Эта часть URL-адреса не предназначена для того, для чего вы пытаетесь его использовать. Просто google «хеш-часть в url» и немного читайте.

Я решил это в XAMPP, добавив extension=php_openssl.dll в xampp/php/php.ini . в некоторых версиях XAMPP эта строка комментируется как ;extension=php_openssl.dll , поэтому просто раскомментируйте ее и перезапустите apache.