По умолчанию маркеры доступа пользователей Instagram краткосрочные и действуют один час. Однако их можно обменять на долгосрочные.
Долгосрочные маркеры действуют 60 дней. Если маркер получен не менее 24 часов назад, его можно обновить, но для этого он должен все ещё быть действительным, а пользователь приложения должен предоставить разрешение instagram_graph_user_profile
. Маркер действителен в течение 60 дней с даты обновления. Если не обновить маркер в течение 60 дней, он перестанет действовать, и обновить его уже не удастся.
Долгосрочные маркеры доступа для закрытых аккаунтов Instagram теперь можно обновлять. Кроме того, разрешения, предоставляемые приложениям их пользователями с закрытыми аккаунтами, теперь действуют 90 дней.
Чтобы обменять краткосрочный маркер доступа пользователя Instagram на долгосрочный, используйте конечную точку GET /access_token
. Получив долгосрочный маркер, вы сможете использовать его в серверных запросах и пересылать в клиент.
Запрос должен выполняться на стороне сервера и включать:
Подробные сведения см. в справке по конечной точке 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 дней, он перестанет действовать.
Запрос должен включать:
Подробные сведения см. в справке по конечной точке 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 }