Есть ли способ заставить Facebook PHP SDK и Javascript SDK общаться - PullRequest
3 голосов
/ 06 июня 2011

Я использую PHP SDK для нескольких внутренних функций, которые интегрируют Facebook, и я использую Javascript SDK для таких вещей, как встраивание виджетов (например, кнопки «Мне нравится» и т. Д.).

Есть ли способ заставить их общаться друг с другом? Например, если мои пользователи входят в систему, используя мой социальный вход для сайтов (который использует PHP SDK), я могу зарегистрировать эту информацию с помощью JS, позволяя им взаимодействовать с Graph API.

Возможно, есть способ включить токен пользователя в код встраивания JS, чтобы он был в курсе?

Кажется, я не могу найти ничего такого, что обсуждает это.

Ответы [ 2 ]

2 голосов
/ 16 августа 2011

На данный момент (август 2011 г.) Facebook обновил свои PHP и JS SDK для полной поддержки OAuth 2.0.См. https://developers.facebook.com/blog/post/525/ и http://developers.facebook.com/blog/post/534/.

Перед миграцией OAuth 2.0 можно использовать параметр session для метода FB.init для передачи пользовательского сеанса в js sdk.Технически это все еще работает, хотя оно постепенно прекращается (1 октября 2011 года - крайний срок миграции OAuth 2.0).

Если вы установите для cookie и oauth значение true в вызове FB.init js, этобудет искать файл cookie с именем fbsr_APPID (где APPID - это идентификатор приложения вашего приложения).Этот файл cookie должен содержать подписанный запрос .

Я не нашел пример кода о том, как создать подписанный запрос в PHP, но должна быть возможность отменить код, который предоставляет Facebook.для расшифровки подписанного запроса.

Подведем итог:

  1. Создайте подписанный запрос из учетных данных пользователя.
  2. Установите для него fbsr_APPID cookie
  3. Загрузите JS SDK, установив для cookie и oauth значение true в FB.init
0 голосов
/ 06 июня 2011

Если вы используете JS SDK для входа в систему, вы можете настроить его для создания файла cookie facebook. Затем вы можете извлечь токен из этого и использовать его в PHP SDK, как описано здесь

FB.init({appId: 'your app id', status: true, cookie: true,
             xfbml: true});

Если вы установите для cookie значение true, вы получите cookie на стороне сервера с токеном, который вы можете передать в PHP sdk.

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