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

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

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

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

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

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.

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

$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

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

$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, обновлено 18.10.2019
14632

Комментарии

, чтобы добавить комментарий.

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

Бот Телеграм на PHP
Примеры как зарегистрировать бота в Телеграм, описание и взаимодействие с основными методами API.
104137
+41
Работа с JSON в PHP
JSON (JavaScript Object Notation) – текстовый формат обмена данными, основанный на JavaScript, который представляет собой набор пар {ключ: значение}. Значение может быть массивом, числом, строкой и...
78362
+11
Автоматическое сжатие и оптимизация картинок на сайте
Изображения нужно сжимать для ускорения скорости загрузки сайта, но как это сделать? На многих хостингах нет...
19301
+8
Интеграция с платежной системой PayKeeper в PHP
Платежная платформа PayKeeper позволяет принимать оплату заказов по ссылке, используя данный метод можно с легкостью...
5798
0
Примеры использования cURL в PHP
cURL PHP – это библиотека предназначенная для получения и передачи данных через такие протоколы, как HTTP, FTP, HTTPS....
151299
+20
Работа с API Instagram
В статье описана регистрация клиента, получения access token, примеры использования методов API Instagram на PHP.
22553
+3