Вопрос

Допустим, я владею / контролирую страницу Facebook, на которой публикуются события.Я бы хотел отобразить эти события на другом веб-сайте (в моем случае, в блоге WordPress, но это не самая важная часть) на странице "Предстоящие события".

В чем я не уверен, так это в том, что:Можно ли использовать Facebook API "извне" подобным образом?Я скачал библиотеку PHP и запустил демо-приложение, которое работает из Facebook (т.е.излучающий FBML, который facebook.com интерпретирует и отображает вошедшему в систему пользователю), но в моем случае я хочу, чтобы третья сторона (мой веб-сервер) время от времени запрашивала Facebook, а не посетители сайта напрямую запрашивали данные (HTML / JSON / и т.д.) у самого Facebook.

Возможно ли подобное с Facebook API?Как мой веб-сервер будет аутентифицироваться?Какую информацию я должен хранить?

Примечание:Я больше ищу информацию на концептуальном уровне "диаграммы последовательности", а не просто запрашиваю код.С этой частью я могу разобраться сам.;) К сожалению, Google и FB developer wiki не были полностью откровенны.Что мне нужно знать, чтобы я мог начать кодировать?

Это было полезно?

Решение

Это общий обзор того, как я сделал это для нескольких моих клиентов, которые хотели получить подобную функциональность:

  1. Создайте довольно простое приложение, которое запрашивает Расширенные разрешения, в частности "offline_access" и все остальное, что вам нужно
  2. Храните полученный Ключ сеанса в вашей базе данных с ЖИДКОСТЬ
  3. Создайте безопасный веб-сервис с аутентификацией для вашего приложения, который позволит вам получать необходимую информацию для предоставленного вами UID, используя сеанс, сохраненный в вашей базе данных
  4. На веб-сайте делайте запросы к веб-сервису вашего приложения, обязательно кэшируя результаты в течение определенного периода времени, и делайте новый запрос к вашему веб-сервису только после истечения срока действия кэша (я использую 5-10 минут для большинства своих)

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

Я использовал веб-сервис, потому что хотел поддерживать только одно приложение Facebook для нужд нескольких клиентов.Это работает следующим образом (на не очень потрясающей диаграмме в формате ASCII):

Facebook User 1 \                    / Client Website 1
Facebook User 2  --- Facebook App ---  Client Website 2
Facebook User 3 /                    \ Client Website 3

Примечание: Я сделал это только для пользователей, а не для страниц, поэтому ваш пробег может отличаться.

Другие советы

AFAIK кроме информации о пользователе, вы не можете получать какие-либо другие данные с facebook.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top