API Facebook без аутентификации клиента для публичного контента - PullRequest
12 голосов
/ 16 июня 2009

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

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

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

Ответы [ 3 ]

11 голосов
/ 21 сентября 2010

По состоянию на сентябрь 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
3 голосов
/ 17 октября 2009

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

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

0 голосов
/ 18 июня 2009

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

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

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

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

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

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