Как через API Facebook опубликовать запись на стене группы?

Здравствуйте. У меня стоит задача через api facebook автоматически опубликовать записи на стене группы.
Честно признаюсь, что уровень знаний у меня средний, поэтому сложновато разобраться в этом.
Не подскажете ссылку или какой-то более-менее простой туториал как работать с api facebook через php, ну а в частности как публиковать записи на стене группы?
Заранее благодарен всем отозвавшимся.
  • Вопрос задан
  • 16267 просмотров
Решения вопроса 2
@vista1x
1) Для начала создаешь приложение. Сделать это можно тут https://developers.facebook.com
Важные моменты: в настройках необходимо указать email и активировать приложение (раздел app review)
2) Нужно получить ключ для работы с апи. Идешь сюда https://developers.facebook.com/tools/explorer, в правом верхнем углу жмешь Get Token -> Get Page Access Token, даешь разрешения на запрос прав доступа. Жмешь снова Get Token и выбираешь свою группу, потом жмешь Request publish_pages и снова соглашаешься. Тут мы получили временный ключ. Нужно обменять его на постоянный (ну как постоянный.. действовать он будет 60 дней, далее - нужно будет снова получать).
Выполняешь такой запрос (в этом же приложении)
oauth/access_token?grant_type=fb_exchange_token&client_id=[ID_ПРИЛОЖЕНИЯ]&client_secret=[КЛЮЧ_ПРИЛОЖЕНИЯ]&fb_exchange_token=[ТОКЕН]

То, что в квадратных скобках, естественно, подставляешь своё. Токен берешь из поля "маркер доступа". Выполняешь запрос, в ответе будет твой токен. Ура.

Теперь то, что касается программирования:
1) Берешь Facebook SDK https://github.com/facebook/facebook-php-sdk-v4/ (ставить конечно лучше через композер, но если не имеешь представления "что это и как с этим работать", то просто скачиваешь и инклудишь себе автозагрузчик, должно работать.
2) Сам постинг.
$app_id = ''; // ид приложения. берешь в настройках приложения (или копируешь с адресной строки)
$app_secret = ''; // ключ приложения. берешь в настройках приложения
$access_token = ''; // токен, который мы получили
$page_id = ''; // id группы

$fb = new Facebook\Facebook(array(
    'app_id' => $app_id,
    'app_secret' => $app_secret,
    'default_graph_version' => 'v2.2',
));
$fb->setDefaultAccessToken($access_token);

// а тут мы непосредственно постим запись на стену. 
// в этом примере запись представляет собой картинку + текст
$data = [
    'message' => 'Текст',
    'source' => $fb->fileToUpload('/полный/путь/к/картинке'),
];
$batch = [
    'photo' => $fb->request('POST', "/{$page_id}/photos", $data),
];
$responses = $fb->sendBatchRequest($batch);


Если пост не уходит, смотришь переменную $responses - в ней есть ответ сервера.
Ну и документацию не стоит обходить стороной https://developers.facebook.com/docs/php/gettingst... Тут, кстати, описана установка SDK поподробнее
Ответ написан
zoonman
@zoonman
⋆⋆⋆⋆⋆
Читаешь это все пока не поймешь getjump.me/ru-php-the-right-way Особенно про то, как установить и использовать Composer.
Идешь сюда https://developers.facebook.com/docs/php/gettingst... и очень внимательно читаешь.
Осваиваешь получение маркера пользователя.
Потом этот код тебе поможет.
$fbApi = new Facebook([
		'app_id' => 'идентификатор приложения',
        'app_secret' => 'секрет приложения'
]);
$post = [
   	'message' => 'текст сообщения',
];
$accessToken = new AccessToken('токен или маркер пользователя из фейсбука');
$fbApi->post(
    '/идентификатор_группы_или_страницы/feed',
    $post,
    $accessToken
);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
php_cat_com
@php_cat_com
php-cat.com > программирую laravel + vue3
vista1x, ответ чёткий, спасибо :)
новичку в api fb отличный старт, единственное место где реально объяснил где получить токен +100500
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы