Подтвердить что ты не робот

API Facebook без аутентификации клиента для общего контента

Я разрабатываю сайт для клиента, у которого уже есть фотографии его продуктов на Facebook, и он хочет, чтобы те же альбомы были воспроизведены на его сайте. Я уже использовал Facebook Connect, поэтому я бросил комбинацию photos.getAlbums и photos.get для динамического создания галерей.

До сих пор так хорошо, но потом я понял, что если нет пользователя, зарегистрированного через FBC, сеанс не создается, и API становится непригодным для использования даже для общедоступного контента. Я, очевидно, хочу показывать альбомы всем, а не только тем, кто подключает их аккаунты.

Как все функции в API Facebook работают? Какое лучшее (проще реализовать) обходное решение для этой ситуации?

4b9b3361

Ответ 1

По состоянию на сентябрь 2010 года вы можете аутентифицироваться как приложение, не связанное с ним. Подробнее см. http://developers.facebook.com/docs/authentication/. Или вы можете запустить этот примерный код, чтобы получить токен доступа:

curl -F grant_type=client_credentials \
 -F client_id=your_app_id \
 -F client_secret=your_app_secret \
 https://graph.facebook.com/oauth/access_token

Ответ 2

Для записи мне удалось решить эту ситуацию, разработав небольшой бэкэнд, который требует от клиента входа в Facebook один раз и предоставить offline_access расширенное разрешение в приложение FB, поэтому я могу сохранить его ключ сеанса и использовать его для аутентификации клиента API Facebook каждый раз, когда мне нужно использовать FQL для получения непубличного контента.

Очевидно, можно добавить некоторое кэширование в середине, чтобы избежать ненужных запросов в Facebook, но он работает отлично уже несколько месяцев, не нажимая никаких ограничений, о которых я знаю.

Ответ 3

Это не имеет смысла для меня - у меня есть (относительно простое) приложение, которое отображается в facebook, даже если пользователь никогда не вошел в facebook раньше (в этом случае он отображает демонстрационные данные).

При использовании библиотеки PHP facebook я просто делаю это:

$facebook = новый Facebook ($ api_key, $secret);

Не требуется идентификатор сеанса, но, очевидно, функции api, которые зависят от информации о пользователе, не будут работать.

Вы также можете посмотреть "бесконечный сеанс" для своего приложения - вы можете создать для себя бесконечный ключ сеанса и использовать этот сеанс для доступа к API.