С помощью этой конечной точки можно получать и размещать публикации Страницы. Лента Страницы охватывает все виды взаимодействия со страницей Facebook, в том числе записи и ссылки, опубликованные этой страницей и посетителями на этой странице, а также общедоступные публикации, в которых эта страница была отмечена.
/{page-post-id}
позволяет обновить публикацию Страницы./{page-id}/tagged
возвращает все общедоступные публикации, в которых отмечена эта Страница.Публикации Страницы Facebook.
Этот API поддерживается для новой версии Страниц.
Человек, запрашивающий маркер доступа, должен иметь право выполнять следующие задачи на этой Странице:
У приложения должны быть следующие разрешения:
Если вы не являетесь владельцем Страницы и не можете ею управлять, вам понадобится:
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
}];
{ "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..." } }
limit
можно прочесть до 100 публикаций в ленте. При попытке прочесть больше выдается соответствующее сообщение об ошибке./{page-id}/tagged
, результаты включают публикации с других Страниц, только если эти Страницы являются подлинными.Ограничение: в конечную точку ленты будут попадать все публикации (размещенные и неразмещенные). Разница заключается в том, что неразмещенные публикации будут отсутствовать в списке физической ленты. При этом к конечной точке /feed можно добавить поле is_published, по которому разработчики смогут определить, размещена публикация в конечной точке /feed или нет.
Имя | Тип | Описание | ||
---|---|---|---|---|
id | string | ID публикации. | ||
actions | object | Ссылки действий в публикации: комментировать, поставить "Нравится", поделиться. | ||
admin_creator | object | Администратор, создавший публикацию Страницы. Если у Страницы только один администратор, данные не возвращаются. Требуются маркер доступа к Странице и разрешение | ||
allowed_advertising_objects | string | Цели, доступные для рекламы этой публикации. | ||
application | object | Информация о приложении, разместившем эту публикацию. | ||
attachments | object | Вложения, относящиеся к этой новости. Информацию о полях | ||
backdated_time | float | Время в прошлом для публикации задним числом. Для обычной публикации это поле содержит значение NULL. | ||
call_to_action | object | Тип призыва к действию, используемый в публикациях Страницы для рекламы мобильного приложения с целью "Вовлеченность". | ||
can_reply_privately | boolean | Указывает, может ли читатель Страницы отвечать на публикацию личным сообщением. Требует разрешения | ||
caption Упразднено для публикаций Страницы начиная с версии 3.3. | string | Подпись ссылки в публикации, отображающаяся под | ||
child_attachments | object | Дополнительные вложения публикации с несколькими ссылками. | ||
created_time | float | Изначальное время размещения публикации. Если публикация касается события из жизни, это поле возвращает его дату и время. | ||
description Упразднено для публикаций Страницы начиная с версии 3.3. Используйте вместо этого | string | Описание ссылки в публикации. Отображается под текстом ссылки (поле | ||
feed_targeting | object | Объект, который управляет таргетингом в Ленте для этой публикации. Люди из указанных групп увидят публикацию с большей вероятностью, чем все остальные. Можно использовать любые из перечисленных полей таргетинга, при этом ни одно не является обязательным (это касается только Страниц). | ||
from |
| Содержит | ||
full_picture | string | URL полноразмерной версии фото, размещенного в публикации или полученного по ссылке из нее. Если длина какой-либо из сторон фото превышает 720 пикселей, Facebook уменьшит размер изображения до допустимого. | ||
icon | string | Ссылка на значок, соответствующий типу публикации. | ||
instagram_eligibility | enum{} | Указывает, можно ли продвигать публикацию в Instagram. Если да, возвращается значение
| ||
is_eligible_for_promotion | boolean | Указывает, может ли публикация участвовать в промоакции. | ||
is_expired | boolean | Указывает, истек ли срок действия публикации. | ||
is_hidden | boolean | Указывает, помечена ли публикация как скрытая (только для Страниц). Скрытая публикация не отображается в хронике Страницы, но видна в других местах на Facebook (например, в ссылках). | ||
is_instagram_eligible | string | Указывает, можно ли продвигать публикацию в Instagram. | ||
is_popular | boolean | Указывает, популярна ли публикация. Зависит от того, превышает ли соотношение общего количества действий и охвата определенное пороговое значение. | ||
is_published | boolean | Указывает, размещена ли запланированная публикация. Действует только для запланированных публикаций Страниц. Для пользовательских и мгновенно размещенных публикаций значение всегда равно | ||
is_spherical | boolean | Указывает, является ли видеопубликация панорамной. | ||
link Упразднено для публикаций Страницы начиная с версии 3.3. Используйте вместо этого | string | Ссылка, прикрепленная к публикации. | ||
message | string | Сообщение о статусе в публикации. | ||
message_tags | array | Массив профилей, отмеченных в тексте | ||
name Упразднено для публикаций Страницы начиная с версии 3.3. Используйте вместо этого | string | Имя | ||
object_id Упразднено для публикаций Страницы начиная с версии 3.3. Используйте вместо этого | string | ID загруженного фото или видео, прикрепленного к публикации. | ||
parent_id | string | ID родительской публикации (если она существует). Например, для новости типа "Вашу Страницу упомянули в публикации" | ||
permalink_url | string | Постоянный статический URL публикации на сайте www.facebook.com. Пример: https://www.facebook.com/FacebookForDevelopers/posts/10153449196353553. | ||
place | string | ID связанного с публикацией местоположения. | ||
privacy | object | Настройки конфиденциальности публикации. | ||
promotable_id | string | ID публикации, используемой для продвижения новостей, которые нельзя продвигать напрямую. | ||
promotion_eligibility Больше не используется. См. | boolean | |||
promotion_status Больше не используется. См. | string | |||
properties | object | Список свойств прикрепленного видео (продолжительность и т. д.). | ||
sheduled_publish_time | float | Метка времени UNIX для запланированного времени размещения публикации. | ||
shares | object | Количество репостов публикации (может включать в себя удаленные и скрытые настройками конфиденциальности). | ||
source Упразднено для публикаций Страницы начиная с версии 3.3. Используйте вместо этого | string | URL Flash-видео или видеофайла, прикрепленного к публикации. | ||
status_type | enum{} | Тип обновления статуса. Возможные значения:
| ||
story | string | Текст новостей, не создаваемый пользователями намеренно (например, сгенерированный при добавлении фото). Чтобы получить это поле, включите миграцию "Включать истории недавних действий". | ||
story_tags | array | Список меток в описании публикации. | ||
subscribed | boolean | Указывает, подписан ли пользователь на публикацию. | ||
targeting | object | Объект, ограничивающий аудиторию этого контента. Просматривать контент могут только аудитории, соответствующие заданным демографическим параметрам. Параметры суммируются, то есть в итоговую аудиторию входят все, кто отвечает хотя бы одному критерию. При этом приоритет имеют ограничения по демографическим параметрам на уровне Страницы (если они заданы). | ||
to |
| Профили, упомянутые в публикации или добавленные в ее таргетинг. Если для чтения этого поля используется маркер доступа пользователя, оно возвращает только текущего пользователя. | ||
type Упразднено для публикаций Страницы начиная с версии 3.3. Используйте вместо этого | enum{} | Строка, указывающая тип объекта для этой публикации. Значения
| ||
updated_time | float | Время последнего обновления публикации, представленное в виде метки времени UNIX. Изменяется при создании публикации, ее редактировании или комментировании пользователем. | ||
video_buying_eligibility | array | Указывает, можно ли продвигать публикацию с помощью различных вариантов покупки видео. Если видео можно продвигать, список пуст. В противном случае возвращается список причин, по которым публикацию нельзя продвигать. | ||
with_tags |
| Профили, имеющие метку "с" с указанием автора публикации. Если для чтения этого поля используется маркер доступа пользователя, оно возвращает только текущего пользователя. Эта конечная точка будет упразднена 30 апреля 2019 г. начиная с версии 3.3 API Graph и API Marketing. Приложения, использовавшие ее в течение последних 90 дней, смогут пользоваться ею до 30 июля 2019 г. (для этого потребуется API 3.2 или более ранней версии). Приложения, не использовавшие эту конечную точку за последние 90 дней, не смогут использовать ее с 30 апреля 2019 г. |
Если найдены публикации, которые можно продвигать, для создания рекламы следует использовать 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}"
{ "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 с использованием POST {page-id}/feed
:
Имя | Тип | Описание |
---|---|---|
actions | array | Ссылки действий, прикрепленные к публикации. |
backdated_time | float | Время в прошлом, которое необходимо установить для этой публикации. |
backdated_time_granularity | enum{year, month, day, hour, minute} | Управляет отображением публикаций, для которых установлено прошедшее время. Например, если выбрать значение |
child_attachments | объект | Позволяет указать несколько ссылок в публикации. Минимальное количество объектов — 2, максимальное — 5. Если для параметра multi_share_optimized задать значение true, можно загрузить до 10 объектов, но Facebook покажет только первые 5. |
feed_targeting | object | Объект, который управляет таргетингом в Ленте для этого контента. Он с большей вероятностью показывается пользователям, входящим в указанные группы, и с меньшей (но не нулевой) — всем остальным. Использовать можно любые из перечисленных здесь полей таргетинга. Ни одно из них не является обязательным. |
link | string | URL ссылки, которую нужно прикрепить к публикации. Необходимо указать |
message | string | Тело публикации. В сообщение можно включать упоминания Страниц Facebook: |
multi_share_end_card | Boolean | Если установлено значение |
multi_share_optimized | Boolean | Если выбрано значение |
object_attachment | string | ID Facebook существующего фото из фотоальбомов пользователя, которое следует использовать в качестве миниатюры. Пользователь должен быть его владельцем. Фото не должно быть прикреплено к сообщению. |
place | string | ID Страницы связанного с публикацией местоположения. |
published | Boolean | Управляет показом новости об этом новом опубликованном объекте. Значение по умолчанию: |
scheduled_publish_time | timestamp | Метка времени UNIX для запланированного времени публикации. Это должна быть дата в диапазоне от 10 минут до 75 дней с момента запроса API. |
tags | csv[string] | Список ID пользователей, отмеченных в этой публикации, через запятую. Если это поле задано, необходимо также задать поле |
targeting | object | Объект, ограничивающий аудиторию этого контента. Его не увидят пользователи, которые не соответствуют указанным демографическим параметрам. Эта настройка не переопределяет действующие демографические ограничения на уровне Страницы. |
Вы можете добавить в публикацию Страницы эмоцию или действие и значок. При публикации эмоции или действия необходимо указывать параметры og_action_type_id
и og_object_id
. Параметр og_icon_id
не является обязательным. Если он не используется, значок выбирается автоматически в зависимости от параметра og_object_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
.
Поддерживаются неразмещенные публикации Страницы перечисленных ниже типов.
Тип публикации | Описание |
---|---|
Публикация Страницы со ссылкой — это максимально эффективный способ размещения ссылок на сайт. Он позволяет заменять изображения и добавлять текст. | |
Публикация Страницы с фото, текстовым описанием и необязательной ссылкой (она включается в описание). | |
Публикация Страницы с текстовым описанием. | |
Публикация Страницы с видео и необязательным текстовым описанием. |
Неразмещенные публикации Страницы аналогичны размещенным, однако они не отображаются в ленте (/feed
).
Чтобы просмотреть список неразмещенных публикаций Страницы, запросите поле is_published
.
curl -i -X GET \
"https://graph.facebook.com/{page-id}/feed
?fields=is_published
&access_token={your-page-access-token}"
Чтобы просмотреть публикацию на сайте Facebook.com, обычно нужно перейти по ссылке https://www.facebook.com/{post-id} или получить поле actions
данной публикации, содержащее URL, по которому для нее можно оставлять отметки "Нравится" и комментарии.
В публикации Страницы со ссылками можно добавлять кнопки призыва к действию. В новые публикации Страницы со ссылкой можно добавлять описанное ниже поле call_to_action
.
Имя | Тип | Описание |
---|---|---|
|
| Объект, определяющий кнопку призыва к действию. Это действие, которое вы ожидаете от пользователя после просмотра вашей публикации. При нажатии этой кнопки пользователь переходит по указанной вами ссылке. |
Вы можете опубликовать на Странице ссылку с пользовательским изображением. Во вложении новости отображается изображение, полученное по ссылке. В настоящее время это изображение можно переопределить, указав необязательный параметр picture
с URL нового изображения. Параметр thumbnail
работает аналогичным образом. Основная разница в том, что он принимает локальный файл изображения, загруженный на Facebook в вызове API.
Для подтверждения права собственности на ссылку проверьте поле ownership_permissions{can_customize_link_posts}
на узле URL
. Перед публикацией новых ссылок необходимо выполнить вызов к этой конечной точке. Без этого публикации Страницы с пользовательскими ссылками не будут работать со ссылками, не обработанными с помощью скрапинга. Дополнительную информацию см. в нашем руководстве по праву собственности на ссылки. Для версий 2.10 и более ранних поля picture
, name
, thumbnail
и description
упразднены. Поле caption
упразднено для всех версий.
Параметры | Тип | Описание |
---|---|---|
| Строка | Описание ссылки (отображается под ее текстом). Если этот параметр не задан, автоматически указывается информация, полученная из ссылки во время скрапинга (обычно это заголовок страницы). |
| Строка | Имя вложения ссылки. В этом поле автоматически указывается информация, полученная из ссылки во время скрапинга. |
| Строка | URL изображения. Изображение берется по URL, указанному в параметре |
| Файл | Файл изображения, который нужно загрузить. Принимаются файлы с расширениями |
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}"
{"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}"
{"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"}
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}
.