it-swarm.com.ru

Простой пример публикации на фан-странице Facebook через PHP?

Я много искал и нашел устаревшие учебники, которые не работают ...

У меня есть сайт, созданный с помощью PHP, и когда я отправляю определенную форму в моей административной области, я хочу опубликовать на своей «фан-странице» в Facebook

Нет доступных RSS, так что у вас есть пример, чтобы напрямую публиковать на фан-странице Facebook (не на стене пользователя) с помощью php sdk?

Спасибо!

41
nmarti

Наконец, после многих тестов он работал без SDK PHP. Это пошаговое руководство:

1. Получить разрешения и маркер страницы

Перейдите на https://developers.facebook.com/tools/Explorer/ и выберите свое приложение в первом раскрывающемся меню слева.

Нажмите кнопку «Получить токен доступа», в окне «Выбор разрешений» нажмите «Расширенные разрешения», проверьте manage_pages и publish_stream и нажмите синюю кнопку «Получить токен доступа».

На этом этапе вас могут попросить предоставить разрешения вашему приложению на доступ к вашей учетной записи Facebook, примите.

Затем щелкните в конце текстового поля рядом с раскрывающимся списком «GET» и замените цифры для: me/account, и нажмите синюю кнопку рядом с этим текстовым полем.

Вы получите токены для всех своих страниц, включая страницу приложения. Найдите имя вашей страницы в списке, оно будет выглядеть так: "name": "Название вашей страницы"

Когда вы нашли свою страницу, скопируйте токен доступа для этой страницы (будет очень длинным), который может выглядеть следующим образом: "access_token": "XXXXXXXX". Также скопируйте идентификатор страницы: "id": "XXXXX".

Вот и все для этого шага, мы можем начать кодирование сейчас.

2. Публикуйте на стене своей страницы через PHP

Во-первых, для этого скрипта вам понадобится сервер, поддерживающий curl.

Мы начинаем PHP документ, определяющий токен доступа к странице и идентификатор страницы, который мы получили на 1-м шаге:

<?php
$page_access_token = 'XXXXXXX';
$page_id = 'YYYYYYYY';

После этого мы создаем массив с информацией для публикации на нашей стене страницы:

$data['picture'] = "http://www.example.com/image.jpg";
$data['link'] = "http://www.example.com/";
$data['message'] = "Your message";
$data['caption'] = "Caption";
$data['description'] = "Description";

Конечно, вы можете использовать любой другой параметр записи, описанный в https://developers.facebook.com/docs/reference/api/post/ , и если вам не нужен один или несколько из указанных выше параметров, вы можете просто удалите это.

Хорошо, в этот момент мы добавляем в массив токен доступа:

$data['access_token'] = $page_access_token;

И мы устанавливаем наш пост URL, чтобы разместить на нашей странице:

$post_url = 'https://graph.facebook.com/'.$page_id.'/feed';

И последний шаг, мы будем использовать завиток, чтобы опубликовать наше сообщение в нашей стене страницы:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $post_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$return = curl_exec($ch);
curl_close($ch);
?>

После этого мы можем сохранить наш PHP документ и попытаться выполнить его. Сообщение может появиться на нашей странице в Facebook.

Надеюсь, что этот код помогает другим людям с такой же проблемой!

80
nmarti

Вы можете протестировать токены, используя Facebook Access Token Debugger

Рабочее решение для API v.2.5

  1. Получить code для app_id в качестве параметра response_uri

https://www.facebook.com/dialog/oauth?client_id=".$app_id."&redirect_uri=".$response_uri."&response_type=code&scope=manage_pages,publish_pages

  1. Получить access_token на основе code, app_id и app_secret как результат response_uri

https://graph.facebook.com/oauth/access_token?grant_type=authorization_code&client_id=".$app_id."&client_secret=".$app_secret."&code=".$code."&redirect_uri=".$response_uri

  1. Получить никогда не истекает page_access_token для page_id на основе access_token

https://graph.facebook.com/v2.5/".$page_id."?fields=access_token&access_token=".$access_token

4
bq23

Как дополнение к ответу nmarti. Действительно для API v.2.4.

Если вы не хотите заходить в консоль Facebook API, лучше просто вызовите API, есть несколько инструкций.

Прежде всего, вы должны иметь пользователя Facebook, являющегося администратором на странице, которую вы хотите опубликовать, а также вы должны создать приложение Facebook, чтобы продолжить.

  1. Сделайте запрос на вход, чтобы получить токен пользователя:

https://www.facebook.com/dialog/oauth?client_id=%app-id%&redirect_uri=%your-site-url%&response_type=token&scope=manage_pages,publish_pages

В ответ вы должны получить% user-token%, сохранить его вам понадобится на следующем шаге.

Прочитайте больше

  1. Попросите долгоживущий токен:

https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id=%app-id%&client_secret=%app-secret%&fb_exchange_token=%user-token%

Теперь у вас будет% долгоживущий токен%, необходимый для получения долгоживущего токена страницы.

Прочитайте больше

  1. Теперь получите список своих страниц в Facebook, 

https://graph.facebook.com/v2.4/%page-admin-user-id%/accounts/?access_token=%long-lived-token%

Найдите в списке свою страницу и маркер страницы, теперь вы можете продолжить публикацию на странице, используя пример nmarti.

Также Facebook говорит:

Полученный токен доступа к странице не будет иметь никакого срока действия.

Прочитайте больше

2
dikirill

Вот ресурс, который вы ищете . Прокрутите вниз до Page Login и прочитайте оттуда . Вы должны получить токен доступа для своей страницы, а затем использовать этот токен при публикации. Это предполагает, что вы хотите, чтобы ваше сообщение отображалось "со страницы". IE - размещение, как если бы вы были страницей.

фактический вызов графа API для создания объекта записи и как это сделать, можно найти по адресу этот URL из документации на facebook. 

0
Lix