С развитием социальных сетей заказчики все чаще хотят интегрировать сайт с Facebook, Twitter, Google+ и т. д. В ходе разработки одного проекта нам понадобилось реализовать кросспостинг с публичной страницей Facebook’а. После тщательного изучения фейсбуковского API а также анализа уже разработанных инструментов интеграции для Drupal, был избран метод, который я опишу в этом посте.
Перво наперво нужно создать публичную страницу. В ходе работы над этим потребуется указать, к какому пользователю она привязана (каждая публичная страница привязана, как минимум, к одному пользователю являющемуся ее админом и имеющему все права в настройках публичной страницы). Затем данный пользователь - через настройки публичной страницы - сможет добавить еще пользователей, получивших соответствующий доступ.
/**
* Auto publish facebook.
*/
function internetdevels_autopublish_facebook($params) {
if ($fb = _fb_api_init()) {
try {
$page_info = $fb->api('/' . FB_PAGE_ID . '?fields=access_token');
$params['access_token'] = $page_info['access_token'];
$fb->api('/' . FB_PAGE_ID . '/feed', 'POST', $params);
}
catch (FacebookApiException $e) {
drupal_set_message(t('Not published to Facebook'));
}
}
}
