Версия API Graph

Лента Страницы

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

См. также

Чтение

Публикации Страницы Facebook.

Новая версия Страниц

Этот API поддерживается для новой версии Страниц.

Требования

Человек, запрашивающий маркер доступа, должен иметь право выполнять следующие задачи на этой Странице:

  • CREATE_CONTENT — публиковать контент на Странице от ее имени.
  • MANAGE — назначать задачи на Странице и управлять ими.
  • MODERATE:
    • отвечать на комментарии к публикациям Страницы от ее имени;
    • удалять комментарии к публикациям Страницы;
    • публиковать контент в Instagram из Facebook, отвечать на комментарии и удалять их, отправлять сообщения в Direct, синхронизировать контактную информацию компании и создавать рекламу, если со Страницей связан аккаунт Instagram.

У приложения должны быть следующие разрешения:

Если вы не являетесь владельцем Страницы и не можете ею управлять, вам понадобится:

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

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

Graph API Explorer
GET /v21.0/{page-id}/feed HTTP/1.1
Host: graph.facebook.com
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->get(
    '/{page-id}/feed',
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
    "/{page-id}/feed",
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{page-id}/feed",
    null,
    HttpMethod.GET,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{page-id}/feed"
                                      parameters:params
                                      HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

Пример ответа JSON

{
  "data": [
    {
      "created_time": "2019-05-17T16:24:04+0000",
      "message": "Become a Facebook developer!",
      "id": "{page-id}_2191966997525824"
    },
    {
      "created_time": "2019-02-26T21:35:42+0000",
      "message": "Hello world!",
      "id": "{page-id}_2072371269485398"
    },
...
    {
      "created_time": "2018-01-26T20:57:22+0000",
      "message": "Friday Funday!",
      "id": "{page-id}_1569752556413941"
    }
  ],
  "paging": {
    "cursors": {
      "before": "Q2c4U1pXNT...",
      "after": "Q2c4U1pXNT..."
    },
    "next": "https://graph.facebook.com/vX.X/{page-id}/feed?access_token={your-page-access-token}&pretty=0&limit=25&after=Q2c4U1pXNT..."
  }
}

Ограничения

  • Публикации с истекшим сроком давности. Если срок давности публикации истек, вы не сможете просмотреть этот контент с помощью Graph API.
  • Максимальное количество публикаций
    • API возвращает примерно 600 ранжированных размещенных публикаций за год.
    • С помощью поля limit можно прочесть до 100 публикаций в ленте. При попытке прочесть больше выдается соответствующее сообщение об ошибке.
  • Сообщения с призывом к действию. Для доступа к публикациям с сообщениями, содержащими призыв к действию, нельзя использовать маркер доступа к другой Странице, так как Страницы не могут обмениваться сообщениями.
  • Публичная информация, идентифицирующая личность. Ответы не будут содержать информацию о пользователе, если в запросе не используется маркер доступа к Странице.
  • Размещенные публикации. При запросе к конечной точке /{page-id}/feed будут возвращаться размещенные и неразмещенные публикации. Чтобы вернуть только размещенные публикации, используйте поле is_published.
  • Репосты публикаций. Публикация Страницы, которая является репостом публикации другой Страницы или человека, может быть недоступна, если исходную публикацию нельзя просмотреть с использованием этого маркера доступа.
  • Отмеченные публикации. Если для показа публикаций, в которых отмечена эта Страница, используется /{page-id}/tagged, результаты включают публикации с других Страниц, только если эти Страницы являются подлинными.
  • Пользовательские агенты. Пользовательские агенты, разрешенные для этих вызовов Graph API, могут меняться без уведомления. В случае проблем попробуйте обновить версию своего пользовательского агента.
  • Видеопубликации. Чтобы получить список видеопубликаций, пользователь, выполняющий вызов, должен быть администратором Страницы.
  • Видео Reels. Чтобы получить список видео Reels, опубликованных на вашей странице, используйте конечную точку Page VideoReels.

Ограничение: в конечную точку ленты будут попадать все публикации (размещенные и неразмещенные). Разница заключается в том, что неразмещенные публикации будут отсутствовать в списке физической ленты. При этом к конечной точке /feed можно добавить поле is_published, по которому разработчики смогут определить, размещена публикация в конечной точке /feed или нет.

Поля

ИмяТипОписание
idstring

ID публикации.

actionsobject

Ссылки действий в публикации: комментировать, поставить "Нравится", поделиться.

admin_creatorobject

Администратор, создавший публикацию Страницы. Если у Страницы только один администратор, данные не возвращаются. Требуются маркер доступа к Странице и разрешение business_management.

idint

ID пользователя, приложения или компании.

namestring

Имя пользователя, название приложения или название компании.

allowed_advertising_objectsstring

Цели, доступные для рекламы этой публикации.

applicationobject

Информация о приложении, разместившем эту публикацию.

attachmentsobject

Вложения, относящиеся к этой новости. Информацию о полях attachments см. в справке по узлу вложений новости.

backdated_timefloat

Время в прошлом для публикации задним числом. Для обычной публикации это поле содержит значение NULL.

call_to_actionobject

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

contextobject

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

can_reply_privatelyboolean

Указывает, может ли читатель Страницы отвечать на публикацию личным сообщением. Требует разрешения read_page_mailboxes.

caption

Упразднено для публикаций Страницы начиная с версии 3.3.

string

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

child_attachmentsobject

Дополнительные вложения публикации с несколькими ссылками.

created_timefloat

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

description

Упразднено для публикаций Страницы начиная с версии 3.3. Используйте вместо этого attachments{description}.

string

Описание ссылки в публикации. Отображается под текстом ссылки (поле caption).

feed_targetingobject

Объект, который управляет таргетингом в Ленте для этой публикации. Люди из указанных групп увидят публикацию с большей вероятностью, чем все остальные. Можно использовать любые из перечисленных полей таргетинга, при этом ни одно не является обязательным (это касается только Страниц).

age_maxint

Максимальный возраст.

age_minint

Минимальный возраст (должен быть не меньше 13). Значение по умолчанию — 0.

citiesint

Значения городов, выбранных для таргетинга. Найдите параметры таргетинга с помощью параметра type объекта adcity, а затем используйте полученные значения key.

college_yearsint

Массив целых чисел, соответствующих годам выпуска из вуза.

countriesstring

Значения стран, выбранных для таргетинга. Можно указать до 25 стран. Используйте коды в формате ISO 3166.

education_statusesint

Массив целых чисел для таргетинга по уровню образования. 1 обозначает среднее образование, 2 — неполное высшее, 3 — высшее (или их эквиваленты в местной системе образования).

gendersint

Таргетинг по определенному полу. 1 обозначает таргетинг по всем пользователям мужского пола, 2 — женского. По умолчанию в таргетинг добавляются оба пола.

interested_in

Больше не используется.

intТаргетинг по полю "Интересует" в профиле пользователя. Значение 1 обозначает пользователей мужского пола, 2 — женского. По умолчанию в таргетинг добавляются все типы пользователей. Обратите внимание, что таргетинг по полю "Интересует" недоступен в большинстве стран Европы и Канаде в связи с местными законодательными ограничениями.
interestsint

ID страниц для таргетинга на их поклонников. Найдите параметры таргетинга с помощью параметра type поля page, а затем используйте полученные ID.

localesint

Таргетинг по локалям. Найдите параметры таргетинга с помощью параметра type объекта adlocale, а затем используйте полученные значения key.

regionsarray

Значения регионов, выбранных для таргетинга. Найдите параметры таргетинга с помощью параметра type объекта adregion, а затем используйте полученные значения key.

relationship_statusesint

Массив целых чисел для таргетинга по семейному положению. Значение 1 обозначает пользователей без пары, 2 — в отношениях, 3 — в браке, 4 — помолвленных. По умолчанию в таргетинг добавляются все типы пользователей.

from

object

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

full_picturestring

URL полноразмерной версии фото, размещенного в публикации или полученного по ссылке из нее. Если длина какой-либо из сторон фото превышает 720 пикселей, Facebook уменьшит размер изображения до допустимого.

iconstring

Ссылка на значок, соответствующий типу публикации.

instagram_eligibilityenum{}

Указывает, можно ли продвигать публикацию в Instagram. Если да, возвращается значение eligible. В противном случае — причина, по которой продвижение невозможно:

  • ineligible_caption_mentions_not_allowed
  • ineligible_caption_too_long
  • ineligible_media_aspect_ratio
  • ineligible_media_dimension
  • ineligible_media_square_aspect_ratio
  • ineligible_media_square_dimension
  • ineligible_post_type
  • ineligible_unknown_error
  • ineligible_video_length
is_eligible_for_promotionboolean

Указывает, может ли публикация участвовать в промоакции.

is_expiredboolean

Указывает, истек ли срок действия публикации.

is_hiddenboolean

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

is_instagram_eligiblestring

Указывает, можно ли продвигать публикацию в Instagram.

is_popularboolean

Указывает, популярна ли публикация. Зависит от того, превышает ли соотношение общего количества действий и охвата определенное пороговое значение.

is_publishedboolean

Указывает, размещена ли запланированная публикация. Действует только для запланированных публикаций Страниц. Для пользовательских и мгновенно размещенных публикаций значение всегда равно true. Обратите внимание: для публикаций Страницы, созданных в процессе создания рекламы, это значение всегда равно false.

is_sphericalboolean

Указывает, является ли видеопубликация панорамной.

link

Упразднено для публикаций Страницы начиная с версии 3.3.

Используйте вместо этого attachments{unshimmed_url}.

string

Ссылка, прикрепленная к публикации.

messagestring

Сообщение о статусе в публикации.

message_tagsarray

Массив профилей, отмеченных в тексте message. Если для чтения этого поля используется маркер доступа пользователя, оно возвращает только текущего пользователя.

lengthint

Длина текста метки в кодовых точках Юникода.

idstring

ID отмеченного профиля.

namestring

Текст метки профиля.

offsetint

Положение первого символа текста метки в messageкодовых точках Юникода).

typeenum{}

Тип отмеченного профиля: user, page или group.

name

Упразднено для публикаций Страницы начиная с версии 3.3.

Используйте вместо этого attachments{title}.

string

Имя link.

object_id

Упразднено для публикаций Страницы начиная с версии 3.3.

Используйте вместо этого attachments{target{id}}.

string

ID загруженного фото или видео, прикрепленного к публикации.

parent_idstring

ID родительской публикации (если она существует). Например, для новости типа "Вашу Страницу упомянули в публикации" parent_id вернет ID публикации, содержащей упоминание.

permalink_urlstring

Постоянный статический URL публикации на сайте www.facebook.com. Пример: https://www.facebook.com/FacebookForDevelopers/posts/10153449196353553.

placestring

ID связанного с публикацией местоположения.

privacyobject

Настройки конфиденциальности публикации.

allowstring

Если поле value имеет значение CUSTOM, это список разделенных запятыми ID пользователей и списков друзей, которые могут увидеть публикацию.

denystring

Если поле value имеет значение CUSTOM, это список разделенных запятыми ID пользователей и списков друзей, которые не могут видеть публикацию.

descriptionstring

Описание настроек конфиденциальности, которое будет отображаться на Facebook.

friendsenum{}

Если поле value имеет значение CUSTOM, это группа друзей, которая может увидеть публикацию. Возможные значения:

  • ALL_FRIENDS
  • FRIENDS_OF_FRIENDS
  • SOME_FRIENDS
valueenum{}

Настройка конфиденциальности. Возможные значения:

  • ALL_FRIENDS
  • CUSTOM
  • EVERYONE
  • FRIENDS_OF_FRIENDS
  • SELF
promotable_idstring

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

promotion_eligibility

Больше не используется. См. is_eligible_for_promotion.

booleanУказывает, может ли публикация участвовать в промоакции.
promotion_status

Больше не используется. См. is_eligible_for_promotion.

stringСтатус промоакции. Требует прав администратора Страницы. Возможные значения:
activeПромоакция активна.
draftПромоакция в режиме черновика.
extendableКампания промоакции завершилась, но ее можно начать заново.
finishedПромоакция завершилась.
inactiveАктивные промоакции отсутствуют.
ineligible

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

pausedПромоакция приостановлена.
pendingПромоакция ещё проходит проверку.
rejectedПромоакция отклонена по результатам проверки.
propertiesobject

Список свойств прикрепленного видео (продолжительность и т. д.).

namestring

Имя свойства.

textstring

Значение свойства.

hrefstring

Ссылка, связанная со свойством.

sheduled_publish_timefloat

Метка времени UNIX для запланированного времени размещения публикации.

sharesobject

Количество репостов публикации (может включать в себя удаленные и скрытые настройками конфиденциальности).

source

Упразднено для публикаций Страницы начиная с версии 3.3.

Используйте вместо этого attachments{media{source}}.

string

URL Flash-видео или видеофайла, прикрепленного к публикации.

status_typeenum{}

Тип обновления статуса. Возможные значения:

  • added_photos
  • added_video
  • app_created_story
  • approved_friend
  • created_event
  • created_group
  • created_note
  • mobile_status_update
  • published_story
  • shared_story
  • tagged_in_photo
  • wall_post
storystring

Текст новостей, не создаваемый пользователями намеренно (например, сгенерированный при добавлении фото). Чтобы получить это поле, включите миграцию "Включать истории недавних действий".

story_tagsarray

Список меток в описании публикации.

subscribedboolean

Указывает, подписан ли пользователь на публикацию.

targetingobject

Объект, ограничивающий аудиторию этого контента. Просматривать контент могут только аудитории, соответствующие заданным демографическим параметрам. Параметры суммируются, то есть в итоговую аудиторию входят все, кто отвечает хотя бы одному критерию. При этом приоритет имеют ограничения по демографическим параметрам на уровне Страницы (если они заданы).

countriesstring

Страны, выбранные для таргетинга (в виде кодов в формате ISO 3166).

localesint

Таргетинг по локалям. Могут быть возвращены параметры таргетинга типа adlocale.

regionslist<int>

Значения регионов, выбранных для таргетинга. Могут быть возвращены параметры таргетинга типа adregion.

citieslist<int>

Значения исключенных городов. Могут быть возвращены параметры таргетинга типа adcity.

to

object

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

type

Упразднено для публикаций Страницы начиная с версии 3.3.

Используйте вместо этого attachments{media_type}. Если нет attachments или media_type=link, устанавливается такое же значение, что и для type=status.

enum{}

Строка, указывающая тип объекта для этой публикации. Значения enum включают в себя:

  • link
  • offer
  • photo
  • status
  • video
updated_timefloat

Время последнего обновления публикации, представленное в виде метки времени UNIX. Изменяется при создании публикации, ее редактировании или комментировании пользователем.

video_buying_eligibilityarray

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

with_tags

object

Профили, имеющие метку "с" с указанием автора публикации. Если для чтения этого поля используется маркер доступа пользователя, оно возвращает только текущего пользователя.


Эта конечная точка будет упразднена 30 апреля 2019 г. начиная с версии 3.3 API Graph и API Marketing. Приложения, использовавшие ее в течение последних 90 дней, смогут пользоваться ею до 30 июля 2019 г. (для этого потребуется API 3.2 или более ранней версии). Приложения, не использовавшие эту конечную точку за последние 90 дней, не смогут использовать ее с 30 апреля 2019 г.

ID публикаций для продвижения

Если найдены публикации, которые можно продвигать, для создания рекламы следует использовать promotable_id. В большинстве случаев этот ID совпадает с post_id. Однако так бывает не всегда. Примечание: если публикация продвигается, для ее редактирования у вас должен быть доступ к связанному рекламному аккаунту.

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

curl -i -X GET \
 "https://graph.facebook.com/{your-page-id}/feed
    ?fields=is_eligible_for_promotion,promotable_id
        &access_token={your-page-access-token}"
GraphRequest request = GraphRequest.newGraphPathRequest(
  accessToken,
  "/{your-page-id}/feed",
  new GraphRequest.Callback() {
    @Override
    public void onCompleted(GraphResponse response) {
      // Insert your code here
    }
});

Bundle parameters = new Bundle();
parameters.putString("fields", "is_eligible_for_promotion,promotable_id");
request.setParameters(parameters);
request.executeAsync();
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
    initWithGraphPath:@"/{your-page-id}/feed"
           parameters:@{ @"fields": @"is_eligible_for_promotion,promotable_id",}
           HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
    // Insert your code here
}];
FB.api(
  '/{your-page-id}/feed',
  'GET',
  {"fields":"is_eligible_for_promotion,promotable_id"},
  function(response) {
      // Insert your code here
  }
);
try {
  // Returns a `FacebookFacebookResponse` object
  $response = $fb->get(
    '/{your-page-id}/feed?fields=is_eligible_for_promotion,promotable_id',
    '{access-token}'
  );
} catch(FacebookExceptionsFacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(FacebookExceptionsFacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();

Пример ответа

{
  "data": [
    {
      "is_eligible_for_promotion": true,
      "promotable_id": "1353269864728879_1943344825721377",
      "id": "1353269864728879_1943344825721377"
    },
    {
      "is_eligible_for_promotion": true,
      "promotable_id": "1353269864728879_1943313139057879",
      "id": "1353269864728879_1943378089051384"
    },
    {
      "is_eligible_for_promotion": false,
      "promotable_id": "1353269864728879_1942095249179668",
      "id": "1353269864728879_1942095249179668"
    },
...

Информацию о том, какие публикации нельзя продвигать, см. в нашем Справочном центре.

Информацию обо всех доступных полях публикации см. в справке по публикациям.

Публикация

Для публикации на Страницах используйте эту границу контекста. Необходимо указать link или message.

Новая версия Страниц

Этот API поддерживается для новой версии Страниц.

Требования

Если вы можете выполнять задачу CREATE_CONTENT, вам понадобятся:

Публикации будут размещаться от имени Страницы.

Разрешения

Примечание. Если URL ссылки (link) не виден пользователю или приложению, разместить публикацию не удастся.

POST /v21.0/{page-id}/feed HTTP/1.1
Host: graph.facebook.com

message=This+is+a+test+message
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->post(
    '/{page-id}/feed',
    array (
      'message' => 'This is a test message',
    ),
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
    "/{page-id}/feed",
    "POST",
    {
        "message": "This is a test message"
    },
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
Bundle params = new Bundle();
params.putString("message", "This is a test message");
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{page-id}/feed",
    params,
    HttpMethod.POST,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
NSDictionary *params = @{
  @"message": @"This is a test message",
};
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{page-id}/feed"
                                      parameters:params
                                      HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

Ответ

{"id":"post-id"}

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

Пример использования инструмента Graph Explorer

Проверка в инструменте Graph Explorer с использованием POST {page-id}/feed:

Поля

ИмяТипОписание
actionsarray

Ссылки действий, прикрепленные к публикации.

linkstring

URL ссылки действия.

namestring

Имя или подпись ссылки действия.

backdated_timefloat

Время в прошлом, которое необходимо установить для этой публикации.

backdated_time_granularityenum{year, month, day, hour, minute}

Управляет отображением публикаций, для которых установлено прошедшее время. Например, если выбрать значение month, публикации будут отображаться с датой в виде 2 months ago, а не с точной датой.

child_attachments

объект

Позволяет указать несколько ссылок в публикации. Минимальное количество объектов — 2, максимальное — 5. Если для параметра

multi_share_optimized

задать значение true, можно загрузить до 10 объектов, но Facebook покажет только первые 5.

descriptionstring

Используется для отображения цены, скидки или домена сайта. Если параметр не указан, соответствующий контент извлекается из страницы по ссылке. Как правило, содержимое этого поля обрезается после 30 символов.

image_hashstring

Хэш изображения для предпросмотра, связанного со ссылкой из вашей библиотеки рекламных изображений. Рекомендуется соотношение сторон 1:1 и разрешение не менее 458 x 458 пикселей. Необходимо указать picture или image_hash.

linkstring

URL ссылки, которую нужно прикрепить к публикации. Это обязательное поле.

namestring

Заголовок для предпросмотра ссылки. Если он не указан, используется заголовок связанной страницы. Как правило, содержимое этого поля обрезается после 35 символов. Рекомендуем задавать уникальное значение name, так как интерфейсы Facebook отображают действия по полю name.

picturestring

URL, который задает изображение для предпросмотра, связанное со ссылкой. Рекомендуется соотношение сторон 1:1 и разрешение не менее 458 x 458 пикселей. Необходимо указать picture или image_hash.

feed_targetingobject

Объект, который управляет таргетингом в Ленте для этого контента. Он с большей вероятностью показывается пользователям, входящим в указанные группы, и с меньшей (но не нулевой) — всем остальным. Использовать можно любые из перечисленных здесь полей таргетинга. Ни одно из них не является обязательным.

age_maxint

Максимальный возраст. Не больше 65.

age_minint

Минимальный возраст (не меньше 13). Значение по умолчанию: 0.

college_yearsint[]

Массив целых чисел, соответствующих годам выпуска из вуза.

education_statusesint[]

Массив целых чисел для таргетинга по уровню образования. 1 обозначает среднее образование, 2 — неполное высшее, 3 — высшее (или их эквиваленты в местной системе образования).

genderslist<unsigned int32>

Таргетинг по определенному полу. 1 обозначает таргетинг по всем пользователям мужского пола, 2 — женского. По умолчанию в таргетинг добавляются оба пола.

geo_locationsobject

Этот объект позволяет указать набор разных географических местоположений. Информацию о нем см. в нашем руководстве по таргетингу.

interestsint[]

Один или несколько ID для таргетинга по поклонникам. Чтобы получить и использовать все возможные ID в качестве параметров таргетинга, воспользуйтесь type=audienceinterest.

localesint

Таргетинг по локалям. Найдите параметры таргетинга с помощью параметра type объекта adlocale, а затем используйте полученное значение key.

relationship_statuseslist<unsigned int32>

Массив целых чисел для таргетинга по семейному положению. Параметр 1 обозначает пользователей без пары, 2 — пользователей в отношениях, 3 — в браке, 4 — помолвленных. По умолчанию в таргетинг добавляются все типы пользователей.

linkstring

URL ссылки, которую нужно прикрепить к публикации. Необходимо указать link или message. Ниже перечислены дополнительные поля, связанные с link. Информацию об ограничениях см. в разделе о пользовательских ссылках.

descriptionstring

Перезаписывает описание в связанном со ссылкой изображении для предпросмотра.

namestring

Перезаписывает заголовок связанного со ссылкой изображения для предпросмотра.

picturestring

Задает связанное со ссылкой изображение для предпросмотра.

thumbnailfile

Загруженное вами связанное со ссылкой изображение для предпросмотра.

messagestring

Тело публикации. В сообщение можно включать упоминания Страниц Facebook: @[page-id].

multi_share_end_cardBoolean

Если установлено значение false, при использовании child_attachments последняя карточка публикации со ссылкой в виде кольцевой галереи не отображается. Значение по умолчанию: true.

multi_share_optimizedBoolean

Если выбрано значение true, а публикация используется в рекламном объявлении, Facebook автоматически выбирает порядок ссылок в child_attachments. В противном случае сохраняется исходный порядок child_attachments. Значение по умолчанию: true.

object_attachmentstring

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

placestring

ID Страницы связанного с публикацией местоположения.

publishedBoolean

Управляет показом новости об этом новом опубликованном объекте. Значение по умолчанию: true. Оно означает, что новость будет отображаться в Ленте. Это поле не поддерживается (not), если указан параметр действий. Неопубликованные записи можно использовать в объявлениях.

scheduled_publish_timetimestamp

Метка времени UNIX для запланированного времени публикации. Это должна быть дата в диапазоне от 10 минут до 75 дней с момента запроса API.

tagscsv[string]

Список ID пользователей, отмеченных в этой публикации, через запятую. Если это поле задано, необходимо также задать поле place.

targetingobject

Объект, ограничивающий аудиторию этого контента. Его не увидят пользователи, которые не соответствуют указанным демографическим параметрам. Эта настройка не переопределяет действующие демографические ограничения на уровне Страницы.

age_minint

Возможные значения: 13, 15, 18, 21 и 25.

geo_locationsobject

Этот объект позволяет указать набор разных географических местоположений. Информацию о нем см. в нашем руководстве по таргетингу.

Добавление эмоции или действия в публикацию Страницы

Вы можете добавить в публикацию Страницы эмоцию или действие и значок. При публикации эмоции или действия необходимо указывать параметры og_action_type_id и og_object_id. Параметр og_icon_id не является обязательным. Если он не используется, значок выбирается автоматически в зависимости от параметра og_object_id.

Поля

Имя Описание

og_action_type_id

Действие: эмоция, просмотр и т. п.

og_icon_id

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

og_object_id

Цель действия: счастье, фильм и т. п. Это может быть предопределенный объект или любой page_id.

Пример публикации

POST /v21.0/page-id/feed HTTP/1.1
Host: graph.facebook.com

message=This+is+a+test+activity&og_action_type_id=383634835006146&og_object_id=136050896551329&og_icon_id=609297155780549
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->post(
    '/page-id/feed',
    array (
      'message' => 'This is a test activity',
      'og_action_type_id' => '383634835006146',
      'og_object_id' => '136050896551329',
      'og_icon_id' => '609297155780549',
    ),
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
    "/page-id/feed",
    "POST",
    {
        "message": "This is a test activity",
        "og_action_type_id": "383634835006146",
        "og_object_id": "136050896551329",
        "og_icon_id": "609297155780549"
    },
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
Bundle params = new Bundle();
params.putString("message", "This is a test activity");
params.putString("og_action_type_id", "383634835006146");
params.putString("og_object_id", "136050896551329");
params.putString("og_icon_id", "609297155780549");
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/page-id/feed",
    params,
    HttpMethod.POST,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
NSDictionary *params = @{
  @"message": @"This is a test activity",
  @"og_action_type_id": @"383634835006146",
  @"og_object_id": @"136050896551329",
  @"og_icon_id": @"609297155780549",
};
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/page-id/feed"
                                      parameters:params
                                      HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

В ответе будет возвращен post_id.

Неразмещенные публикации Страницы

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

Тип публикацииОписание

Ссылка

Публикация Страницы со ссылкой — это максимально эффективный способ размещения ссылок на сайт. Он позволяет заменять изображения и добавлять текст.
Примечание. Ссылка на видео на Youtube является публикацией Страницы со ссылкой.

Фото

Публикация Страницы с фото, текстовым описанием и необязательной ссылкой (она включается в описание).

Публикация

Публикация Страницы с текстовым описанием.

Видео

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

Неразмещенные публикации Страницы аналогичны размещенным, однако они не отображаются в ленте (/feed).

Чтобы просмотреть список неразмещенных публикаций Страницы, запросите поле is_published.

curl -i -X GET \
 "https://graph.facebook.com/{page-id}/feed
 ?fields=is_published
 &access_token={your-page-access-token}"
GraphRequest request = GraphRequest.newGraphPathRequest(
  accessToken,
  "/{page-id}/feed",
  new GraphRequest.Callback() {
    @Override
    public void onCompleted(GraphResponse response) {
      // Insert your code here
    }
});

Bundle parameters = new Bundle();
parameters.putString("fields", "is_published");
request.setParameters(parameters);
request.executeAsync();
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
    initWithGraphPath:@"/{page-id}/feed"
           parameters:@{ @"fields": @"is_published",}
           HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
    // Insert your code here
}];
FB.api(
  '/{page-id}/feed',
  'GET',
  {"fields":"is_published"},
  function(response) {
      // Insert your code here
  }
);
try {
  // Returns a `FacebookFacebookResponse` object
  $response = $fb->get(
    '/{page-id}/feed?fields=is_published',
    '{access-token}'
  );
} catch(FacebookExceptionsFacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(FacebookExceptionsFacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();

Чтобы просмотреть публикацию на сайте Facebook.com, обычно нужно перейти по ссылке https://www.facebook.com/{post-id} или получить поле actions данной публикации, содержащее URL, по которому для нее можно оставлять отметки "Нравится" и комментарии.

Параметр call_to_action публикации Страницы

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

ИмяТипОписание

call_to_action

object

Объект, определяющий кнопку призыва к действию. Это действие, которое вы ожидаете от пользователя после просмотра вашей публикации. При нажатии этой кнопки пользователь переходит по указанной вами ссылке.

type

string

Задает текст кнопки призыва к действию. Возможны перечисленные ниже значения.

BOOK_TRAVEL. Отображается призыв к действию "Забронировать".

BUY_NOW. Отображается призыв к действию "Купить". Используется только в рекламе виртуальных товаров в приложениях для ПК.

CALL_NOW. Отображается призыв к действию "Позвонить". Используется только в рекламе для повышения местной узнаваемости.

DOWNLOAD. Отображается призыв к действию "Скачать".

GET_DIRECTIONS. Отображается призыв к действию "Как добраться". В поле link должны быть указаны координаты. Используется только в рекламе для повышения местной узнаваемости.

GET_QUOTE. Отображается призыв к действию "Узнать цену" (используется для генерации лидов).

INSTALL_APP. Отображается призыв к действию "Установить".

INSTALL_MOBILE_APP. Отображается призыв к действию "Установить". Используется только в рекламе мобильных приложений.

LEARN_MORE. Отображается призыв к действию "Подробнее".

LIKE_PAGE. Отображается призыв к действию "Нравится". Используется только в объявлениях с целью "Отметки "Нравится" Страницы".

LISTEN_MUSIC. Отображается призыв к действию "Слушать музыку".

MESSAGE_PAGE. Отображается призыв к действию "Отправить сообщение". Используется только в рекламе для повышения местной узнаваемости.

NO_BUTTON. Призыв к действию не отображается.

OPEN_LINK. Отображается призыв к действию "Открыть ссылку". Используется только в объявлениях с целью "Клики на сайт".

PLAY_GAME. Отображается призыв к действию "Играть". Используется только в рекламе приложений для ПК.

SHOP_NOW. Отображается призыв к действию "В магазин". Используется только в объявлениях с целью "Конверсии на сайте".

SIGN_UP. Отображается призыв к действию "Зарегистрироваться".

SUBSCRIBE. Отображается призыв к действию "Подписаться" (используется для генерации лидов).

USE_APP. Отображается призыв к действию "Использовать приложение".

USE_MOBILE_APP. Используется только в рекламе мобильных приложений.

WATCH_MORE. Отображается призыв к действию "Смотреть ещё".

WATCH_VIDEO. Отображается призыв к действию "Смотреть видео".

Пользовательское изображение в публикации Страницы со ссылкой

Вы можете опубликовать на Странице ссылку с пользовательским изображением. Во вложении новости отображается изображение, полученное по ссылке. В настоящее время это изображение можно переопределить, указав необязательный параметр picture с URL нового изображения. Параметр thumbnail работает аналогичным образом. Основная разница в том, что он принимает локальный файл изображения, загруженный на Facebook в вызове API.

Разрешения

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

Для подтверждения права собственности на ссылку проверьте поле ownership_permissions{can_customize_link_posts} на узле URL. Перед публикацией новых ссылок необходимо выполнить вызов к этой конечной точке. Без этого публикации Страницы с пользовательскими ссылками не будут работать со ссылками, не обработанными с помощью скрапинга. Дополнительную информацию см. в нашем руководстве по праву собственности на ссылки. Для версий 2.10 и более ранних поля picture, name, thumbnail и description упразднены. Поле caption упразднено для всех версий.

ПараметрыТипОписание

description

Строка

Описание ссылки (отображается под ее текстом). Если этот параметр не задан, автоматически указывается информация, полученная из ссылки во время скрапинга (обычно это заголовок страницы).

name

Строка

Имя вложения ссылки. В этом поле автоматически указывается информация, полученная из ссылки во время скрапинга.

picture

Строка

URL изображения. Изображение берется по URL, указанному в параметре picture.

thumbnail

Файл

Файл изображения, который нужно загрузить. Принимаются файлы с расширениями .jpg, .jpeg, .gif и .png. Изображение берется из файла, загруженного в параметре thumbnail.

Ограничения

  • Параметр thumbnail доступен только в публикациях со ссылками на Страницах Facebook.
  • Параметр thumbnail имеет приоритет перед параметром picture. Если указаны оба, параметр picture не используется.
  • Параметр thumbnail принимает изображения с расширениями .jpg, .jpeg, .gif и .png.
  • В пакетных запросах параметр thumbnail не поддерживается.

Публикация ссылки на Странице

Чтобы опубликовать ссылку на Странице, отправьте запрос POST к границе контекста /page/feed. Установите для параметра publish значение 1, чтобы сразу же разместить публикацию, или 0, чтобы создать неразмещенную публикацию и опубликовать ее позже.

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

curl -i -X POST "https://graph.facebook.com/{your-page-id}/feed
  ?message=Become%20a%20Facebook%20developer!
  &link=https%3A%2F%2Fdevelopers.facebook.com
  &published=1
  &access_token={your-page-access-token}"
GraphRequest request = GraphRequest.newPostRequest(
  accessToken,
  "/{your-page-id}/feed",
  new JSONObject("{\"message\":\"Become a Facebook developer!\",\"link\":\"https://developers.facebook.com\",\"published\":\"1\"}"),
  new GraphRequest.Callback() {
    @Override
    public void onCompleted(GraphResponse response) {
      // Insert your code here
    }
});
request.executeAsync();
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
    initWithGraphPath:@"/{your-page-id}/feed"
           parameters:@{ @"message": @"Become a Facebook developer!",@"link": @"https://developers.facebook.com",@"published": @"1",}
           HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
    // Insert your code here
}];
FB.api(
  '/{your-page-id}/feed',
  'POST',
  {"message":"Become a Facebook developer!","link":"https://developers.facebook.com","published":"1"},
  function(response) {
      // Insert your code here
  }
);
try {
  // Returns a `FacebookFacebookResponse` object
  $response = $fb->post(
    '/{your-page-id}/feed',
    array (
      'message' => 'Become a Facebook developer!',
      'link' => 'https://developers.facebook.com',
      'published' => '1'
    ),
    '{access-token}'
  );
} catch(FacebookExceptionsFacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(FacebookExceptionsFacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();

Пример ответа

{"id":"{post-id}"}

Публикация Страницы со ссылкой и призывом к действию

В поле call_to_action задается соответствующее действие и ссылка. Ссылка должна совпадать со значением параметра link публикации Страницы. В этом вызове поля title, description, caption и picture не являются обязательными. Если они не указаны, Facebook берет соответствующие свойства из метаданных Open Graph ссылки. Если веб-страница по ссылке не содержит метаданных Open Graph, Facebook попытается определить эти свойства, анализируя контент веб-страницы.

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

curl -i -X POST "https://graph.facebook.com/{your-page-id}/feed
  ?message=Become a Facebook developer!
  &link=https://developers.facebook.com
  &call_to_action={"type":"SIGN_UP","value":{"link":"https://developers.facebook.com"}}
  &published=1
  &access_token={your-page-access-token}"
GraphRequest request = GraphRequest.newPostRequest(
  accessToken,
  "/{your-page-id}/feed",
  new JSONObject("{\"message\":\"Become a Facebook developer!\",\"link\":\"https://developers.facebook.com\",\"published\":\"1\",\"call_to_action\":\"{\\\"type\\\":\\\"SIGN_UP\\\",\\\"value\\\":{\\\"link\\\":\\\"https://developers.facebook.com\\\"}}\"}"),
  new GraphRequest.Callback() {
    @Override
    public void onCompleted(GraphResponse response) {
      // Insert your code here
    }
});
request.executeAsync();
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
    initWithGraphPath:@"/{your-page-id}/feed"
           parameters:@{ @"message": @"Become a Facebook developer!",@"link": @"https://developers.facebook.com",@"published": @"1",@"call_to_action": @"{"type":"SIGN_UP","value":{"link":"https://developers.facebook.com"}}",}
           HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
    // Insert your code here
}];
FB.api(
  '/{your-page-id}/feed',
  'POST',
  {"message":"Become a Facebook developer!","link":"https://developers.facebook.com","published":"1","call_to_action":"{\"type\":\"SIGN_UP\",\"value\":{\"link\":\"https://developers.facebook.com\"}}"},
  function(response) {
      // Insert your code here
  }
);
try {
  // Returns a `FacebookFacebookResponse` object
  $response = $fb->post(
    '/{your-page-id}/feed',
    array (
      'message' => 'Become a Facebook developer!',
      'link' => 'https://developers.facebook.com',
      'published' => '1',
      'call_to_action' => '{"type":"SIGN_UP","value":{"link":"https://developers.facebook.com"}}'
    ),
    '{access-token}'
  );
} catch(FacebookExceptionsFacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(FacebookExceptionsFacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();

Пример ответа

{"id":"{post-id}"}

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

С использованием локального файла:

curl -F 'link=http://www.example.com' \
     -F 'thumbnail=@/local/path/to/file/on/hard/drive/image.jpg' \
     -F 'access_token=page-access-token'\
  https://graph.facebook.com/v2.11/page-id/feed

Возвращаемое значение

{"id":"post-id"}

С использованием изображения по URL:

curl -F 'link=http://www.example.com' \
     -F 'picture=https://www.example.com/path/to/image.jpg' \
     -F 'access_token=page-access-token'\
  https://graph.facebook.com/v2.11/page-id/feed

Возвращаемое значение

{"id":"post-id>"}

Публикация Страницы с фото

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

Публикация Страницы с видео

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

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

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

Обновление

Обновлять публикации с использованием этой границы контекста нельзя, однако для обновления можно использовать узел /{post-id}.

Удаление

Удалять публикации с использованием этой границы контекста нельзя, однако для удаления можно использовать узел /{post-id}.