Авторизационный токен facebook php ошибка - PullRequest
0 голосов
/ 06 октября 2011

Это странно, потому что на моей странице холста для моего приложения на Facebook я получаю все эти php-ошибки о моем auth_token, а затем он перенаправляет и работает как надо.Может ли кто-нибудь помочь мне разобраться в этом?Вот мой PHP-код в верхней части страницы:

$app_id = "181247432419054";
$app_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$my_url = "https://apps.facebook.com/wellnessq/";
session_register();
session_start();


if (!isset($_REQUEST["code"]))
{
 $_SESSION['state'] = md5(uniqid(rand(), TRUE)); //CSRF protection
 $dialog_url = "http://www.facebook.com/dialog/oauth?client_id=" 
   . $app_id . "&redirect_uri=" . urlencode($my_url) . "&scope=email&state="
   . $_SESSION['state'];

 echo("<script> top.location.href='" . $dialog_url . "'</script>");
 }
 $code = $_REQUEST['code'];
{
 $token_url = "https://graph.facebook.com/oauth/access_token?"
   . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)
   . "&client_secret=" . $app_secret . "&code=" . $code;

 $response = file_get_contents($token_url);
 $params = null;
 parse_str($response, $params);

 $graph_url = "https://graph.facebook.com/me?access_token=" 
   . $params['access_token'];

 $user = json_decode(file_get_contents($graph_url));
}

?> 

Первое сообщение об ошибке начинается с $ code = $ _REQUEST ['code'];а затем следует еще несколько.Я не могу опубликовать снимок экрана, потому что у меня слишком мало очков репутации = / grrr Но вот сообщения об ошибках:

Примечание: неопределенный индекс: код в D: \ Extranet \ www.mysite.com \ manager \ here \core.functions.php (663): код eval () в строке 19

Предупреждение: file_get_contents (https://graph.facebook.com/oauth/access_token?client_id=181247432419054&redirect_uri=https%3A%2F%2Fapps.facebook.com%2Fwellnessq%2F&client_secret=xxxxxxxxxxxxxxxxx&code=) [function.file-get-contents]: не удалось открыть поток: сбой HTTP-запроса!Неверный запрос HTTP / 1.0 400 в D: \ Extranet \ www.mysite.com \ manager \ here \ core.functions.php (663): код eval () в строке 25

Примечание: неопределенный индекс: access_token в D: \ Extranet \ www.mysite.com \ manager \ here \ core.functions.php (663): код eval () в строке 30

Предупреждение: file_get_contents (https://graph.facebook.com/me?access_token=) [function.file-get-contents]: не удалось открыть поток: сбой HTTP-запроса! HTTP / 1.0 400 Неправильный запрос в D: \ Extranet \ www.mysite.com \ manager \ here \ core.functions.php (663): eval() код в строке 32

Спасибо!

1 Ответ

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

Вам нужно добавить оператор exit; сразу после вывода тега <script>. Я заметил это упущение во многих примерах кода Facebook. Обычно это не вызывает особых проблем, но как только вы определились с необходимостью перенаправления, вам следует убедиться, что вы перестали делать что-либо еще и дать браузеру время для обработки сценария перенаправления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...