Как я могу передать свой токен доступа к Facebook, который я получил в JS SDK, в мой PHP-скрипт?

У меня есть функциональное приложение facebook, использующее JS SDK. Я могу использовать JS SDK, чтобы получить идентификатор facebook моих пользователей и токен доступа, и, похоже, он работает нормально. Тем не менее, мой JS-скрипт должен вызывать некоторый код PHP на стороне сервера через JQuery AJAX, чтобы выполнять некоторые операции, связанные с сервером... но мне все еще нужен доступ к токену доступа моего пользователя в коде PHP. В официальной документации Facebook по PHP SDK я увидел следующее:

Facebook SDK для PHP может работать в сочетании с Facebook SDK для Javascript, чтобы обеспечить плавное управление сеансами как на стороне клиента, так и на стороне сервера приложения.

Чтобы включить эту функцию, убедитесь, что при встраивании и инициализации JS SDK вы устанавливаете как статус, так и параметры cookie объекта, передаваемого в FB.init(), в значение true.

Я следовал точным инструкциям, как написано выше, но похоже, что мой PHP-код не может получить идентификатор пользователя facebook и токен доступа после того, как я инициализирую свой PHP-объект facebook.

Что мне не хватает? я этого не понимаю, потому что, как говорится в документации, токен доступа моего пользователя должен автоматически передаваться в PHP SDK с использованием файла cookie.

Должно ли это быть сделано каким-то другим способом?

Спасибо!


comment
Я знаю, что могу сделать это вручную с помощью HTTP POST, но я предпочитаю, чтобы facebook управлял этим за меня, как указано.   -  person gipouf    schedule 19.12.2012
comment
Сделай сам — Facebook откажется от автоматического переноса, чтобы дать больше полномочий (и ответственности) разработчикам.   -  person Sean Kinsey    schedule 19.12.2012


Ответы (1)


Если access_token извлекается с помощью Javascript SDK, то вы знаете, что получите его только после загрузки первой страницы (при перезагрузке страницы или вызове ajax).

Тем не менее, обязательно проверьте, правильно ли настроены ваши SDK (а также файл канала), так как это может создать проблемы с междоменной связью, а также потому, что файлы cookie большую часть времени блокируются в iframe без какого-либо взлома. (в основном в IE и Safari).

Кроме того, файл cookie, который будет настроен JS SDK, будет использоваться через функции PHP SDK, и вам кажется, что getAccessToken — это то, что вам нужно. https://developers.facebook.com/docs/reference/php/facebook-getAccessToken/

person Simon Boudrias    schedule 19.12.2012