Публикации

В этом руководстве рассказывается, как создавать, размещать и обновлять публикации, отвечать на публикации на вашей Странице Facebook от имени Страницы, а также удалять публикации с помощью Pages API от Meta.

Прежде чем начать

This guide assumes you have read the Overview

For a person who can perform tasks on the page, you will need to implement Facebook Login to ask for the following permissions and receive a Page access token:

  • pages_manage_engagement
  • pages_manage_posts
  • pages_read_engagement
  • pages_read_user_engagement
  • publish_video permission, if you are publishing a video to the Page

Your app user must be able to perform the CREATE_CONTENT, MANAGE, and MODERATE tasks on the Page in the API requests.

If your app users do not own or manage the Page in the API requests, your app will need a User access token and the following features:

  • Page Public Content Access

Рекомендации

При тестировании вызова API можно добавить параметр access_token и задать в нем маркер доступа. Однако при выполнении безопасных вызовов из приложения следует использоваться класс маркера доступа.

Размещение публикаций

Чтобы разместить публикацию на Странице, отправьте запрос POST к конечной точке /page_id/feed, подставив в качестве page_id ID своей Страницы, со следующими параметрами:

  • message — текст публикации;
  • link — URL, если вы хотите опубликовать ссылку;
  • чтобы разместить публикацию сразу же, установите для параметра published значение true (используется по умолчанию), а чтобы отложить публикацию — значение false;
    • если выбрано значение false, добавьте параметр scheduled_publish_time и укажите в нем дату в одном из следующих форматов:
      • метка времени в виде целого числа UNIX [в секундах] (например, 1530432000);
      • строка метки времени в формате стандарта ISO 8061 (например, 2018-09-01T10:15:30+01:00);
      • любая строка, которую может анализировать функция PHP strtotime() (например, +2 weeks, tomorrow).

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

  • Дата публикации должна быть в диапазоне от 10 минут до 30 дней с момента запроса API.
  • Если вы используете строки относительной даты параметра strtotime(), вы можете задействовать операцию чтение после записи для параметра scheduled_publish_time созданной публикации, чтобы обеспечить необходимый результат.

Пример запроса

Для удобства чтения применено форматирование. Замените выделенный жирным шрифтом и курсивом текст, например page_id, собственными значениями.
curl -X POST "https://graph.facebook.com/v21.0/page_id/feed" \
     -H "Content-Type: application/json" \
     -d '{
           "message":"your_message_text",
           "link":"your_url",
           "published":"false",
           "scheduled_publish_time":"unix_time_stamp_of_a_future_date",
         }'

В случае успеха ваше приложение получит следующий ответ JSON с ID публикации:

{
  "id": "page_post_id" 
}

Добавление таргетинга по аудиториям

Чтобы ограничить возможности просмотра публикации Страницы, в запрос POST можно добавить объект targeting.geo_locations или параметр feed_targeting.geo_locations.

-d '{
      ...
      "targeting": {
        "geo_locations": {
          "countries": [
            "CA"
          ],
          "cities": [
            {
              "key": "296875",
              "name": "Toronto"
            }
          ]
        }
      },
      ...
    }'

Устранение проблем

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

Размещение публикаций с медиафайлами

Вы можете публиковать на Странице фото и видео.

Публикация фото

Чтобы опубликовать на Странице фото, отправьте запрос POST к конечной точке /page_id/photos, подставив в качестве page_id ID своей Страницы, а в параметре url задайте адрес фото для публикации.

Пример запроса

Для удобства чтения применено форматирование. Замените выделенный жирным шрифтом и курсивом текст, например page_id, собственными значениями.
curl -X POST "https://graph.facebook.com/v21.0/page_id/photos" \
     -H "Content-Type: application/json" \
     -d '{
           "url":"path_to_photo",

В случае успеха ваше приложение получит следующий ответ JSON с ID фото и ID публикации:

{
  "id":"photo_id",
  "post_id":"page_post_id" 
}

Публикация видео

Если вы собираетесь публиковать на своей Странице видео, ознакомьтесь с документацией по Video API.

Получение публикаций

Чтобы получить список публикаций Страницы, отправьте запрос GET к конечной точке /page_id/feed.

Пример запроса

Для удобства чтения применено форматирование. Замените выделенный жирным шрифтом и курсивом текст, например page_id, собственными значениями.
curl -i -X GET "https://graph.facebook.com/v21.0/page_id/feed"

В случае успеха ваше приложение получит следующий ответ JSON с массивом объектов, содержащих ID публикации, время создания публикации и контент публикации, для каждой публикации на вашей Странице:

{
  "data": [
    {
      "created_time": "2019-01-02T18:31:28+0000",
      "message": "This is my test post on my Page.",
      "id": "page_post_id"
    }
  ],
...
}

Ограничения

  • Прямой эфир — если в публикации Страницы есть видео с истекшим сроком, например прямая трансляция, вы можете получить некоторые поля публикации за исключением связанных с этим видео. Для видео действуют собственные правила конфиденциальности. Если его срок действия истек, информация о нем будет видна только администратору Страницы.
  • Сообщение с призывом к действию — для общедоступных публикаций Страницы можно использовать любой маркер доступа при условии, что для вашего приложения было одобрено обращение к общедоступному контенту Страницы. Однако доступ к публикациям, содержащим сообщения с призывом к действию, нельзя получить с использованием маркера доступа другой Страницы, поскольку страницы не могут отправлять сообщения другим страницам.

URL публикаций Страниц

Публикации Страниц имеют следующие URL, или постоянные ссылки: https://www.facebook.com/page_post_id.

Обновление публикации

Чтобы обновить публикацию Страницы, отправьте запрос POST к конечной точке /page_post_id и добавьте параметры, которые вы хотите изменить, с новыми значениями.

Пример запроса

Для удобства чтения применено форматирование. Замените выделенный жирным шрифтом и курсивом текст, например page_post_id, собственными значениями.
curl -X POST "https://graph.facebook.com/v21.0/page_post_id" \
     -H "Content-Type: application/json" \
     -d '{
           "message":"I am updating my Page post",
         }'

В случае успеха ваше приложение получит следующий ответ JSON, в котором для параметра success будет установлено значение true:

{
  "success": true
}

Ограничения

Приложение может обновлять только публикации Страницы, созданные с использованием этого приложения.

Удаление публикации

Чтобы удалить публикацию Страницы, отправьте запрос DELETE к конечной точке /page_post_id и подставьте вместо page_post_id ID публикации, которую нужно удалить.

Пример запроса

Для удобства чтения применено форматирование. Замените выделенный жирным шрифтом и курсивом текст, например page_post_id, собственными значениями.
curl -i -X DELETE "https://graph.facebook.com/v21.0/page_post_id"

В случае успеха ваше приложение получит следующий ответ JSON, в котором для параметра success будет установлено значение true:

{
  "success": true
}

Дальнейшие действия

Узнайте, как комментировать публикации Страницы и @упоминать людей и Страницы, оставивших публикации или комментарии на вашей Странице.