Версия API Graph

/{object-id}/likes

В этой статье описывается граница контекста /likes, которую используют многие узлы API Graph. Ее структура и принцип работы одинаковы для всех узлов. Граница контекста /likes есть у следующих объектов:

Чтение

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

Получить количество отметок "Нравится" можно через поле likes объекта.

Для получения количества отметок "Нравится" (при их наличии) рекомендуем использовать конечную точку /object/reactions.

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

Новая версия Страниц поддерживает конечную точку /likes для следующих объектов:

  • пользователь.

Требования

  • Для просмотра отметок "Нравится" должны выполняться те же требования, что и для просмотра соответствующего объекта.

Ограничения

  • В случае отметок "Нравится" для публикаций доступны только обобщенные показатели total_count с параметром summary.
  • Количество реакций like включает как реакции "Нравится", так и реакции "Мы вместе".
  • total_count обозначает примерное количество отметок "Нравится", однако возвращенное фактическое количество может быть другим в зависимости от настроек конфиденциальности.
  • Конечные точки GET /{group-post-id}/likes и GET /{post-id}/likes упразднены начиная с версии 8.0. В остальных версиях их поддержка прекращается 2 ноября 2020 г.

Поля

Имя свойства Описание Тип

total_count

Общее количество отметок "Нравится", поставленных объекту пользователями и Страницами. Чтобы возвращалось это поле, укажите в запросе параметр и значение summary=true.

int32

Пример использования

Пример запроса
curl -i -X GET "https://graph.facebook.com/{object-id}
  ?fields=likes.summary(true)
  &access_token={access-token}"

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

  {
  "likes": {
    "data": [
      {
        "name": "Bill the Cat",
        "id": "155111347875779",
        "created_time": "2017-06-18T18:21:04+0000"
      },
      {
        "name": "Calvin and Hobbes",
        "id": "257573197608192",
        "created_time": "2017-06-18T18:21:02+0000"
      },
      {
        "name": "Berkeley Breathed's Bloom County",
        "id": "108793262484769",
        "created_time": "2017-06-18T18:20:58+0000"
      }
    ],
    "paging": {
      "cursors": {
        "before": "Nzc0Njg0MTQ3OAZDZD",
        "after": "NTcxODc1ODk2NgZDZD"
      },
      "next": "https://graph.facebook.com/vX.X/me/likes?access_token=user-access-token&pretty=0&summary=true&limit=25&after=NTcxODc1ODk2NgZDZD"
    },
    "summary": {
      "total_count": 136
    }
  },
  "id": "user-id"
}

Публикация

Отметка "Нравится" для объекта.

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

Новая версия Страниц поддерживает конечную точку /likes для следующих объектов:

POST /v21.0/{object-id}/likes HTTP/1.1
Host: graph.facebook.com
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->post(
    '/{object-id}/likes',
    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(
    "/{object-id}/likes",
    "POST",
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{object-id}/likes",
    null,
    HttpMethod.POST,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{object-id}/likes"
                                      parameters:params
                                      HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

Разрешения

  • Маркер доступа к Странице, запрошенный пользователем, который может выполнять действие CREATE_CONTENT на Странице.
  • Разрешение pages_manage_engagement.

Ограничения

  • У Страницы также должна быть возможность поставить отметку "Нравится" нужному объекту (через API или на сайте Facebook.com).
  • Объекту можно поставить только одну отметку "Нравится".
  • Если Страница уже реагировала на объект (ставила "Ух ты!", "Сочувствую" и т. д.), то ему можно будет поставить отметку "Нравится", однако реакция при этом не изменится.
  • Возможность поставить отметку "Нравится" для отзыва к Странице не поддерживается.

Поля

Ни одно поле не является обязательным.

Ответ

В случае успеха приложение получит следующий ответ:

{
  "success": true
}

Обновление

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

Удаление

Эта конечная точка позволяет удалять отметки "Нравится" для объекта.

DELETE /v21.0/{object-id}/likes 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(
    '/{object-id}/likes',
    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(
    "/{object-id}/likes",
    "DELETE",
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{object-id}/likes",
    null,
    HttpMethod.DELETE,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{object-id}/likes"
                                      parameters:params
                                      HTTPMethod:@"DELETE"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

Разрешения

  • Маркер доступа к Странице, запрошенный пользователем, который может выполнять действие MODERATE на Странице.
  • Разрешение pages_manage_engagement.

Ограничения

  • Пользователи и Страницы могут удалять только собственные отметки "Нравится" (likes).
  • При этом у объекта уже должна быть отметка "Нравится".
  • Возможность удалить отметку "Нравится" для отзыва к Странице не поддерживается.

Поля

У этой конечной точки нет полей.

Ответ

В случае успеха приложение получит следующий ответ:

{
  "success": true
}