Интеграция с Facebook: Pages

Clock Mini Icon02 ноября 2010,19:55

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

У каждой сущности в Facebook есть свой ID. Зная ID, можно получить всевозможную информацию о ней через Graph API: http://graph.facebook.com/ID-сущности.

Для того, чтобы выполнять какие-либо автоматические действия, придётся зарегистрировать приложение в Facebook. Приложение имеет свой ID, API ключ и секретный ключ. Чтобы выполнять какие-либо действия, ему нужно подтверждение пользователя - для этого существует OAuth authorize запрос: 

https://graph.facebook.com/oauth/authorize?
client_id=ID_приложения&
redirect_uri=адрес_сайта_указанный_при_регистрации_приложения&
scope=список_возможностей_необходимых_приложению

Чтобы приложение могло в дальнейшем работать без вмешательства пользователя, запросим возможности offline_access и manage_pages. Когда пользователь подтвердит запрос, его браузер будет перенаправлен по адресу, указаному в redirect_uri. Сервер должен запомнить ключ, переданный Facebook в GET-параметре code.

Получив code, приложение может обменять его на access_token с помощью такого запроса:

https://graph.facebook.com/oauth/access_token?
client_id=application_id&
redirect_uri=адрес_сайта&
client_secret=code

После этого, Facebook вернёт приложению строку вида access_token=XXXXXXX. Теперь оно может выполнять действия, указанные в параметре scope от имени авторизованного пользователя.

Осталось получить доступ к странице - для этого запросим https://graph.facebook.com/me/accounts и получим список всех страниц (а также специальные access tokens к ним). Используя access token самой страницы, можно писать на неё под именем компании, отправляя POST-запросы к https://graph.facebook.com/ID_страницы/feed. Не забудьте передать следующие POST-параметры:

access_token - см. выше;
link - ссылка на запись в блоге.