/{comment-id}
Комментарии (comment
) можно оставлять к контенту разного типа на Facebook. У большинства узлов API Graph есть граница контекста /comments
, содержащая список всех комментариев к объекту. Узел /{comment-id}
возвращает один комментарий (comment
).
Этот API поддерживается для новой версии Страниц.
Общие: для чтения комментариев обычно нужны те же разрешения, что и для просмотра его родительского объекта.
Ответы: если комментарий является ответом на другой комментарий, то для его чтения нужны те же разрешения, что и для просмотра родительского объекта исходного комментария.
Комментарии и ответы Страницы: если ответы должны содержать информацию о пользователе, необходимо использовать маркер доступа к Странице.
Прежний формат ID комментария к публикации Страницы ({page-id}_{post_id}_{comment-id}
) упразднен. Используйте вместо него формат {pagepost-id}_{comment-id}
.
GET /v21.0/{comment-id} 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(
'/{comment-id}',
'{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(
"/{comment-id}",
function (response) {
if (response && !response.error) {
/* handle the result */
}
}
);
/* make the API call */
new GraphRequest(
AccessToken.getCurrentAccessToken(),
"/{comment-id}",
null,
HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
/* handle the result */
}
}
).executeAsync();
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
initWithGraphPath:@"/{comment-id}"
parameters:params
HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
id result,
NSError *error) {
// Handle the result
}];
Имя свойства | Описание | Тип |
---|---|---|
| ID комментария. |
|
| Ссылка, видео, стикер или фото, вложенные в комментарий. | |
| Указывает, может ли читатель ответить на этот комментарий. |
|
| Указывает, может ли читатель удалить этот комментарий. |
|
| Указывает, может ли читатель скрыть этот комментарий. Видно только администратору страницы. |
|
| Указывает, может ли читатель поставить этому комментарию отметку "Нравится". |
|
| Указывает, может ли читатель Страницы ответить на комментарий личным сообщением. |
|
| Количество ответов на комментарий. |
|
| Время публикации комментария. |
|
| Автор комментария. | |
| Количество отметок "Нравится", поставленных комментарию. |
|
| Текст комментария. |
|
| Массив профилей, отмеченных в тексте комментария ( |
|
| Тип родительского объекта (только для фото и видео, в том числе в динамических публикациях; для объектов других типов это поле остается пустым). |
|
| Родительский комментарий (только для ответов на комментарии). | |
| URL постоянной ссылки комментария. Если у вызывающего приложения имеется только функция доступа к общедоступному контенту Страниц, не будет возвращаться в запросах версии 20.0 и выше. С 19 августа 2024 г. это изменение начинает действовать для всех запросов версий. |
|
| Вывод переписки между Страницей и автором комментария, отправленного в виде личного сообщения (только для читателей Страницы). | |
| Указывает, поставил ли читатель комментарию отметку "Нравится". |
|
Для публикации комментариев можно использовать границу контекста /comments
, если она есть в узле.
Для удаления комментариев используйте следующую конечную точку:
DELETE /v21.0/{comment-id} HTTP/1.1
Host: graph.facebook.com
/* PHP SDK v5.0.0 */
/* make the API call */
try {
// Returns a `Facebook\FacebookResponse` object
$response = $fb->delete(
'/{comment-id}',
array (),
'{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(
"/{comment-id}",
"DELETE",
function (response) {
if (response && !response.error) {
/* handle the result */
}
}
);
/* make the API call */
new GraphRequest(
AccessToken.getCurrentAccessToken(),
"/{comment-id}",
null,
HttpMethod.DELETE,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
/* handle the result */
}
}
).executeAsync();
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
initWithGraphPath:@"/{comment-id}"
parameters:params
HTTPMethod:@"DELETE"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
id result,
NSError *error) {
// Handle the result
}];
Этот API поддерживается для новой версии Страниц.
Для удаления комментария Страницы требуются:
pages_read_engagement
; pages_manage_engagement
. Для удаления комментария пользователя или другой Страницы требуются:
pages_manage_engagement
; pages_read_user_content
. Отзывы не считаются публикациями Страницы, поэтому Страница не может удалять комментарии к ним.
В случае успеха:
{ "success": true }
В противном случае возвращается соответствующее сообщение об ошибке.
Для редактирования комментариев используйте следующую конечную точку:
POST /v21.0/{comment-id} HTTP/1.1
Host: graph.facebook.com
message=This+is+a+test+comment
/* PHP SDK v5.0.0 */
/* make the API call */
try {
// Returns a `Facebook\FacebookResponse` object
$response = $fb->post(
'/{comment-id}',
array (
'message' => 'This is a test comment',
),
'{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(
"/{comment-id}",
"POST",
{
"message": "This is a test comment"
},
function (response) {
if (response && !response.error) {
/* handle the result */
}
}
);
Bundle params = new Bundle();
params.putString("message", "This is a test comment");
/* make the API call */
new GraphRequest(
AccessToken.getCurrentAccessToken(),
"/{comment-id}",
params,
HttpMethod.POST,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
/* handle the result */
}
}
).executeAsync();
NSDictionary *params = @{
@"message": @"This is a test comment",
};
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
initWithGraphPath:@"/{comment-id}"
parameters:params
HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
id result,
NSError *error) {
// Handle the result
}];
Этот API поддерживается для новой версии Страниц.
pages_read_engagement
; pages_manage_engagement
Вы можете скрыть практически любой комментарий к публикации, кроме следующих:
При обновлении комментария нужно задать одно из следующих полей: attachment_url
, attachment_id
, message
или attachment_share_url
.
Обязательно укажите сообщение или вложение. В качестве вложения могут выступать url
, attachment_id
или attachment_share_url
. Поля id
и url
можно указывать одновременно. С полем attachment_share_url
нельзя указывать никакие другие поля.
При обновлении комментария следует указать все значения исходного контента, иначе они будут утеряны. Например, если вы забудете добавить в обновленный комментарий изображение, которое автор вложил в него с помощью attachment_url
, это изображение пропадет.
Обновлять можно поля, перечисленные в статье об /object/comments
(раздел "Публикация"), а именно: attachment_url
, attachment_id
, message
и source
. Дополнительные сведения об этих полях см. в статье по ссылке.
Также поддерживается обновление описанного здесь поля is_hidden
.
Имя | Описание | Тип |
---|---|---|
| Указывает, скрыт ли комментарий. Если да, то автор, администратор Страницы и отмеченные в комментарии люди все равно будут его видеть. |
|
В случае успеха вы получите ответ с указанной ниже информацией. Кроме того, эта конечная точка поддерживает чтение после записи и может сразу возвращать любые поля, возвращаемые операциями чтения.
{ "success": true }
В случае неудачи возвращается соответствующее сообщение об ошибке.
Имя свойства | Описание | Тип |
---|---|---|
/comments | Ответы на комментарий. | Edge<Comment> |
/likes | Люди, поставившие этому комментарию отметку "Нравится". | Edge<Profile> |
/reactions | Люди, отреагировавшие на публикацию. | Edge<Reaction> |
/private_replies | Позволяет ответить на комментарий личным сообщением (только для читателей Страницы). | Edge<Message> |