2011-01-21 3 views
3

Я новичок в этом, так что медведь со мной. Я установил кнопку «Войти с Facebook» через Javascript SDK, который отлично работает. Я также установил PHP-код (facebook.php) Я могу успешно войти в Facebook через javascript, но затем не могу получить доступ к UID из сеанса через php. Итак, как я могу получить php для доступа к наборам javascript сеанса? благодаряГде найти куки-файлы Facebook?

Edit: (код проводки снизу вот так будет легче читать)

Я могу утешают войти ответ и увидеть его.

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, кажется, что работал ..
если (Исеть ($ _ COOKIE [$ cookieName])) {
// FAILS! нет $ _COOKIE ['fbs_myNumericAppId']

Это кажется логичным, как можно входить в facebook.com узнать, что такое мой идентификатор приложения?
Я также заметил, что после входа в facebook.com НИЧЕГО нет facebook, связанного в $ _COOKIE. Итак, чтобы войти в facebook через facebook.com, затем зарегистрируйтесь на веб-сайте, чтобы войти в систему, вам нужно запустить FB.login при загрузке страницы. Затем вы должны установить файл cookie через информацию javacript, возвращенную в $ _COOKIE, чтобы php мог забрать ее где-нибудь еще.

ответ

4

У меня есть blog post и некоторые previousanswers, которые могут пригодиться вам в качестве ориентиров.

Вы зарегистрировали свой сайт на Facebook в качестве «приложения»? Если нет, вам нужно это сделать. Файл cookie, который устанавливает Facebook, позволяет сайту получать доступ к информации пользователя (после того как они согласились предоставить доступ к вашему приложению) использует комбинацию идентификатора вашего приложения и «секретного» (длинную буквенно-цифровую строку, которую вы не должны передавать, или другие приложения могли бы выдавать себя за вас), чтобы установить зашифрованное значение с идентификатором пользователя и маркером аутентификации, уникальным для пользователя и вашего приложения (представляющего разрешение, предоставленное вами их данным).

Куки отправляются на ваш сайт наряду с запросами, как и любые другие файлы cookie. Вы должны использовать секрет вашего приложения, чтобы расшифровать его и извлечь идентификатор пользователя и токен аутентификации, который затем использовать для доступа к данным через API-интерфейс Facebook.

+0

Да, я зарегистрировал приложение. Я могу увидеть ответ. Когда я войду через javascript, но не с php – hogsolo

+0

@hogsolo: Можете ли вы опубликовать какой-то код с тем, что вы пытаетесь сделать? – David

+0

@hogsolo: Все в порядке. Просто убедитесь, что вы запутались в компрометации любого кода, который вы публикуете (например, секрет приложения). Существует несколько различных способов взаимодействия с Facebook, даже с помощью JavaScript, поэтому будет намного проще помочь с базовым кодом, который может воспроизвести проблему. – David

Смежные вопросы