Другие ошибки в Facebook Вход в систему Javascript Ошибки

Это своего рода расширение моего предыдущего вопроса. С этим несколько решены, я все еще сталкиваюсь с ошибками. Я работаю над руководством Javascript здесь . Я сейчас на последнем сегменте кода страницы, внизу. В верхней части моей страницы у меня есть следующий код ( APP ID и SECRET ID определены в моем коде):

<?php define('YOUR_APP_ID', '**APP ID**'); define('YOUR_APP_SECRET', '**SECRET ID**'); function get_facebook_cookie($app_id, $app_secret) { $args = array(); parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args); ksort($args); $payload = ''; foreach ($args as $key => $value) { if ($key != 'sig') { $payload .= $key . '=' . $value; } } if (md5($payload . $app_secret) != $args['sig']) { return null; } return $args; } $cookie = get_facebook_cookie(YOUR_APP_ID, YOUR_APP_SECRET); $user = json_decode(file_get_contents( 'https://graph.facebook.com/me?access_token=' . $cookie['access_token'])); ?> 

Но теперь я получаю эти ошибки (googling их не превратили ничего полезного):

Опять же, мой идентификатор приложения IS показан в коде ошибки правильно.

 Notice: Undefined index: fbs_**MY APP ID** in C:\wamp\www\_header.php on line 10 Notice: Undefined index: sig in C:\wamp\www\_header.php on line 18 

Возможно ли, что это может быть проблема, связанная с WAMP? Заранее спасибо.

Проверьте свои скобки. Много раз простая путаница между иерархиями кронштейнов может исправить эти неприятные ошибки.

Это означает, что $ COOKIE ['fbs '. $ App_id] не существует, это означает, что COOKIE var пуст (или не задан)

Я добавил простую проверку, чтобы проверить var в файле cookie. Это работает для меня.

 function get_facebook_cookie($app_id, $application_secret) { $args = array(); if (!isset($_COOKIE['fbs_' . $app_id])) { //BOOHOO, NO COOKIE; return $args; } parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args); ksort($args); $payload = ''; foreach ($args as $key => $value) { if ($key != 'sig') { $payload .= $key . '=' . $value; } } if (md5($payload . $application_secret) != $args['sig']) { return null; } return $args; } 

Почему вы не используете PHP SDK для Facebook? Я сделал это так, он работает для меня, хотя он не проверяет секрет приложения:

 // Read the cookie created by the JS API $cookie = trim($_COOKIE['fbs_' . FB_APP_ID], '\\"'); parse_str($cookie, $data); // Startup the Facebook object $fb = new Facebook(array( 'appId' => FB_APP_ID, 'secret' => FB_APP_SECRET )); // Say we are using the token from the JS $fb->setAccessToken($data['access_token']); // It should work now var_dump($fb->getUser()); 

Обратите внимание, что $ COOKIE ['fbs '. FB_APP_ID] будет доступна только после вызова метода FB.login на JavaScript.

Также убедитесь, что вы разрешаете cookie считываться с PHP при инициализации JS API, например:

 FB.init({ appId : 'YOUR APP ID', cookie : true }); 

Надеюсь, это помогло.

Ссылка на github PHP SDK: https://github.com/facebook/php-sdk/