Этот документ обновлен.
Перевод (Русский) еще не готов.
Последнее обновление (английский): 7 июл 2021 г.

Долгосрочные маркеры доступа

По умолчанию маркеры доступа пользователей Instagram краткосрочные и действуют один час. Однако их можно обменять на долгосрочные.

Долгосрочные маркеры действуют 60 дней. Если маркер получен не менее 24 часов назад, его можно обновить, но для этого он должен все ещё быть действительным, а пользователь приложения должен предоставить разрешение instagram_graph_user_profile. Маркер действителен в течение 60 дней с даты обновления. Если не обновить маркер в течение 60 дней, он перестанет действовать, и обновить его уже не удастся.

Долгосрочные маркеры доступа для закрытых аккаунтов Instagram теперь можно обновлять. Кроме того, разрешения, предоставляемые приложениям их пользователями с закрытыми аккаунтами, теперь действуют 90 дней.

Ограничения

  • Краткосрочные маркеры с истекшим сроком действия нельзя обменять на долгосрочные. Если срок действия маркера пользователя истек, получите новый и обменяйте его на долгосрочный.
  • Запросы долгосрочных маркеров содержат секрет приложения, поэтому их можно выполнять только в серверном коде. Никогда не используйте их в клиентском коде и двоичном коде приложения, который можно декомпилировать. Не сообщайте никому секрет своего приложения, не используйте его в коде, не отправляйте в клиенты и не храните на устройствах.

Получение долгосрочного маркера

Чтобы обменять краткосрочный маркер доступа пользователя Instagram на долгосрочный, используйте конечную точку GET /access_token. Получив долгосрочный маркер, вы сможете использовать его в серверных запросах и пересылать в клиент.

Запрос должен выполняться на стороне сервера и включать:

  • действительный (с неистекшим сроком действия) краткосрочный маркер доступа пользователя Instagram;
  • секрет приложения Instagram (Панель приложений > Продукты > Instagram > Basic Display > поле Секрет приложения Instagram).

Подробные сведения см. в справке по конечной точке GET /access_token.

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

curl -i -X GET "https://graph.instagram.com/access_token
  ?grant_type=ig_exchange_token
  &client_secret={instagram-app-secret}
  &access_token={short-lived-access-token}"

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

{
  "access_token":"{long-lived-user-access-token}",
  "token_type": "bearer",
  "expires_in": 5183944  // Number of seconds until token expires
}

Обновление долгосрочного маркера

Чтобы обновить долгосрочный маркер доступа пользователя Instagram, используйте конечную точку GET /refresh_access_token. Для этого маркер доступа должен быть действительным. Обновленный долгосрочный маркер будет работать ещё 60 дней. Если не обновить его за эти 60 дней, он перестанет действовать.

Запрос должен включать:

  • действительный (с неистекшим сроком действия) долгосрочный маркер доступа пользователя Instagram.

Подробные сведения см. в справке по конечной точке GET /refresh_access_token.

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

curl -i -X GET "https://graph.instagram.com/refresh_access_token
  ?grant_type=ig_refresh_token
  &access_token={long-lived-access-token}"

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

{
  "access_token":"{long-lived-user-access-token}",
  "token_type": "bearer",
  "expires_in": 5183944 // Number of seconds until token expires
}