Я новичок в этом, так что медведь со мной. Я установил кнопку «Войти с Facebook» через Javascript SDK, который отлично работает. Я также создал PHP-код (facebook.php). Я могу успешно войти в систему Facebook через javascript, но затем не могу получить доступ к UID из сеанса через php. Итак, как я могу получить php для доступа к наборам javascript сеанса? благодаря
Изменить: (Проводка кода снизу здесь, чтобы было легче читать)
Я могу консоль регистрировать ответ и видеть его.
FB.getLoginStatus(function(response) { console.log(response.session.uid); });
Обновите страницу и попробуйте получить доступ к сеансу, который был установлен через php, и он имеет значение null.
require_once(RELATIVE_PATH.'applibs/facebook.php'); $config = array('appId'=>Config::$fb_app_id, 'secret'=>Config::$fb_secret, 'cookie'=>true); $fb = new Facebook($config); $fb->getUser(); // this will equal null because the $fb object isnt finding the cookie supposedly set by javascript
* Была ли какая-то отладка в facebook.php
в строке 358 … $ cookieName = $ this-> getSessionCookieName ();
// retuns fbs_myNumericAppId, похоже, что это сработало.
if (isset ($ _ COOKIE [$ cookieName])) {
// НЕ МОЖЕТ! нет $ _COOKIE ['fbs_myNumericAppId']
Кажется логичным, как можно войти в facebook.com, чтобы узнать, что такое идентификатор моего приложения?
Я также заметил, что после входа в facebook.com НИЧЕГО нет facebook, связанного в $ _COOKIE. Итак, чтобы войти в facebook через facebook.com, затем зарегистрируйтесь на веб-сайте, чтобы войти в систему, вам нужно запустить FB.login при загрузке страницы. Затем вы должны установить cookie через информацию javacript, возвращенную в $ _COOKIE, чтобы php мог забрать ее где-нибудь еще.
У меня случается сообщение в блоге и некоторые предыдущие ответы, которые могут вам пригодиться в качестве ориентиров.
Вы зарегистрировали свой сайт на Facebook в качестве «приложения»? Если нет, вам нужно это сделать. Файл cookie, который устанавливает Facebook, позволяет сайту получать доступ к информации пользователя (после того как они согласились предоставить доступ к вашему приложению) использует комбинацию идентификатора вашего приложения и «секретного» (длинную буквенно-цифровую строку, которую вы не должны передавать, или другие приложения могли бы выдавать себя за вас), чтобы установить зашифрованное значение с идентификатором пользователя и маркером аутентификации, уникальным для пользователя и вашего приложения (представляющего разрешение, предоставленное вами их данным).
Файл cookie отправляется на ваш сайт наряду с запросами, как и любые другие файлы cookie. Вы должны использовать секрет вашего приложения, чтобы расшифровать его и извлечь идентификатор пользователя и токен аутентификации, который затем использовать для доступа к данным через API-интерфейс Facebook.