Публикация на страницу Facebook через PHP

Для доступа к API facebook нужно создать приложение на странице https://developers.facebook.com/apps/, но есть большая проблема:

Facebook ограничил свободный доступ к API. Теперь чтобы получить права для публикации записей нужно:

  • Указать в приложении ссылку на свою политику конфиденциальности.
  • Подтвердить свой профиль документом (отправить скан паспорта или водительского удостоверения).
  • Отправить 2 запроса на получение доступа к publish_pages и manage_pages, с описанием, как приложение использует функции, почему это необходимо и что это дает пользователю. Так-же необходимо представить видео, пошагово демонстрирующее, как приложение будет использовать эту функцию. Проверка приложения занимает 7 дней.

Если удастся пройти проверку:

1

Получение access_token

1. Переходим на https://developers.facebook.com/tools/explorer/

2. В выпадающем меню «Приложение» выбираем свое приложение.

3. Ниже в меню «Get Token» выбираем «Get Page Access Token», появится окно подтверждения прав, жмем «ок».

4. В этом же меню появится новый пункт с названием страницы (Маркеры доступа на Страницу), выбираем его.

5. После чего появится новый пункт «Request publish_pages», жмем его и опять подтверждаем права.

6. Ниже кнопка «Submit».

7. В правой части добавляем access_token и снова «Отправить». В ответе будет ID страницы и токен.

8. Копируем полученный токен. У него время действия всего час. Страницу не закрываем!

9. Переходим на https://developers.facebook.com/tools/debug/accesstoken и вставляем скопированный токен в поле, жмем «Отладить», ниже жмем кнопку «Extend Access Token» и вводим пароль, после этого появится новый токен сроком уже на 60 дней, копируем его.

10. Возвращаемся на https://developers.facebook.com/tools/explorer/ и вставляем скопированный токен в поле «Маркер доступа», жмем «Submit». В ответе будет новый токен без ограничений по времени, его будем использовать при запросах к API.

2

Метод feed

Публикация ссылки на страницу сайта.

$page_id = 'ID_СТРАНИЦЫ';

$data = array(
	'access_token' => 'ACCESS_TOKEN',
	'message'      => 'Hello, world!',
	'link'         => 'http://snipp.ru/',
	'name'         => 'Анкор',
	'picture'      => 'http://snipp.ru/logo.png'
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://graph.facebook.com/' . $page_id . '/feed');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($ch);
curl_close($ch);

$res = json_decode($res, true);
var_dump($res);
PHP
3

Метод photos

Публикация изображения с текстом.

$page_id = 'ID_СТРАНИЦЫ';

$data = array(
	'access_token' => 'ACCESS_TOKEN',
	'caption'      => 'Hello, world!',
	'url'          => 'http://snipp.ru/logo.png'
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://graph.facebook.com/' . $page_id . '/photos');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($ch);
curl_close($ch);

$res = json_decode($res, true);
var_dump($res);
PHP
13.11.2016, обновлено 30.08.2019 7273

Поделится

Темы

Facebook

Другие публикации

Изображения нужно сжимать для ускорения скорости загрузки сайта, но как это сделать? На многих хостингах нет...
После регистрации в системе эквайринга Сбербанка и получив доступ к тестовой среде, можно приступить к интеграции с...
В статье описана регистрация клиента, получения access token, примеры использования методов API Instagram на PHP.
Если требуется сделать импорт или обновление товаров по XML файлу Яндекс Маркета, можно применить расширении PHP...
cURL PHP – это библиотека предназначенная для получения и передачи данных через такие протоколы, как HTTP, FTP, HTTPS....
Пример подключения ReCaptcha на php сайт, регистрация в API, вставка кода в форму, проверка правильности введенной...