Expired token инстаграм что делать

Как продлить (увеличить) время жизни базового (API Instagram Basic Display) ключа доступа (access_token) для API «Instagram»

Не так давно мы узнали, почему перестал работать старый доступ к API социальной сети «Instagram», что пришло на его смену, а также научились получать базовый доступ к API для личного пользования.

Все бы ничего, но новые принципы взаимодействия с социальной сетью устроены так, что персональный ключ доступа (с момента его получения) действителен всего лишь 1 час.

Тому, как быть в таком случае, если ваши задумки требуют куда большего времени его жизни, и посвящена эта статья.

Получение ключа доступа (access_token) с большим временем жизни для API «Instagram»

Получение более долгоживущего (условно назовем его долгосрочным) ключа доступа происходит путем обмена краткосрочного ключа.

1. Итак, первое, что вам необходимо – это получить краткосрочный ключ.

2. Далее в любом браузере переходите по следующей ссылке:

Где «СЕКРЕТ_ПРИЛОЖЕНИЯ» – секрет приложения Instagram (найдете в панели управления приложением, раздел «Basic Display»), а «ACCESS_TOKEN» – ваш персональный ключ доступа, полученный на 1 шаге.

Expired token инстаграм что делать. Смотреть фото Expired token инстаграм что делать. Смотреть картинку Expired token инстаграм что делать. Картинка про Expired token инстаграм что делать. Фото Expired token инстаграм что делать

Если все указано правильно, на открывшейся странице вы получите новый ключ доступа, который будет действителен 60 дней.

Копируете его в надежное место и используете в своих проектах.

Продление долгосрочного ключа доступа (access_token) для API «Instagram»

После того, как вы получили ключ с большим временем жизни, его (периодически) необходимо продлевать.

Сделать это можно, посетив следующую ссылку в вашем браузере:

Где «LONG_ACCESS_TOKEN» – долгосрочный ключ, полученный способом выше.

Если игнорировать своевременное обновление ключа, то его действие прекратится и всю процедуру (начиная от его получения) необходимо проделать вновь.

Источник

Срок действия токена доступа к Instagram

У меня есть приложение, которое извлекает данные из моей учетной записи Instagram. Я разрешил это приложение один раз и получил токен доступа. Но я волнуюсь, что, если истечет этот токен? Должен ли я разрешать приложение каждый раз, когда токен истекает? Могу ли я получить еще один токен доступа из кода auth? Если нет, что я могу сделать, чтобы приложение всегда извлекало данные из аккаунта без моего участия? Благодарю.

ОТВЕТЫ

Ответ 1

Но я беспокоюсь, что, если этот токен истекает?

AFAIK, Instagram accesstokens не истекает в настоящее время.

Обратите внимание, что мы не включаем время истечения срока действия. У нашего access_tokens нет явного истечения срока действия, хотя ваше приложение должно обрабатывать случай, когда либо пользователь отменяет доступ, либо мы истекаем токен через некоторое время. В этом случае ваши ответы meta будут содержать «error_type = OAuthAccessTokenError». Другими словами: не предполагайте, что ваш access_token действителен навсегда.

Должен ли я разрешать приложение каждый раз, когда истекает токен?

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

что я могу сделать, чтобы мое приложение всегда извлекало данные из учетной записи без мое участие?

Вы можете попробовать следующее:

Используйте sharedpreference для хранения accesstoken.

В первый раз, когда вы пытаетесь получить данные, требующие accesstoken (аутентифицированные запросы), сначала проверьте в sharedpreference, хранится ли accesstoken или нет. если да, то вам не нужно входить в систему, просто используйте этот accesstoken. Если у вас нет предпочтения в accesstoken, выполните регистрацию с использованием учетных данных instagram, получите accesstoken, а затем поделитесь им с разделяемыми предпочтениями и используйте это для последующих запросов.

Вы можете предоставить вариант выхода из системы instagram, в котором вам просто нужно очистить accesstoken от sharedprefernce.

Надеюсь, это поможет вам.

Ответ 2

Пока недостаточно хорошо документировано, Стоит отметить, что для получения фида сообщений не требуется accessToken.

также можно назвать передачей только вашего client_id

Однако это не указано в их документации.

Ответ 3

токен доступа к Instagram истекает в произвольные моменты времени. Два раза в течение последних 7 месяцев из моего опыта.

Ответ 4

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

В настоящий момент существует хак, чтобы показать пользователю последнее сообщение, просто добавьте URL с ‘/? __ a = 1’ ‘после имени пользователя, например

Вы получите последнее сообщение пользователя с текстом изображения, без комментариев, как, например, просто копайте немного возврата JSON

Источник

Instagram access token expire

I have an app, that pulls data from my Instagram account. I authorized this app once, and got access token. But I’m worried, what if this token expires? Should I authorized the app each time the token expires? Can I receive another access token from the auth code? If no, what can I do to have my app always pulling data from account without my participation? Thanks.

4 Answers 4

But I’m worried, what if this token expires?

AFAIK, Instagram accesstokens don’t expire currently.

Note that we do not include an expiry time. Our access_tokens have no explicit expiry, though your app should handle the case that either the user revokes access or we expire the token after some period of time. In this case, your response’s meta will contain an “error_type=OAuthAccessTokenError”. In other words: do do not assume your access_token is valid forever.

Should I authorize the app each time the token expires?

At the moment, you do not need to do that, as token does not expire. As and when the token expires in future, a corresponding warning or error code and message will be sent to you, which you need to handle.

what can I do to have my app always pulling data from account without my participation?

You can try following:

Use sharedpreference to store the accesstoken.

First time when you try to fetch data that needs accesstoken(Authenticated requests), first check in the sharedpreference whether the accesstoken is stored or not. if yes then you don’t need to login, just use that accesstoken. If you don’t have the accesstoken in preference then do the login using instagram credentials, get the accesstoken and then share it in shared preference and use that for subsequent requests.

You can provide instagram logout option in which you just need to clear the accesstoken from sharedprefernce.

Источник

Верификация для доступа к API Instagram

Примерно с мая месяца Facebook разрешил подключения к API обмена сообщениями с Instagram, но процедура подключения несколько запутанная. Под катом некоторые нюансы и шишки прохождения процедуры верификации приложения для работы с сообщениями Instagram.

API обмена сообщениями с Instagram ничем не отличается от API обмена сообщениями с Facebook, только в теле сообщения в параметре platform будет указано «Instagram», в отличии от сообщения с Facebook, для которого в platform будет указано «page».

А вот процедура верификации приложения в случае Instagram имеет несколько отличий от верификации в случае Facebook.

1. Так же как и с Facebook, настраиваем Вебхук на наш бекэнд, только в разделе Instagram, генерируем токен, и прописываем токен на стороне бекэнда, проверяем, что вебхук подтвердился.

Expired token инстаграм что делать. Смотреть фото Expired token инстаграм что делать. Смотреть картинку Expired token инстаграм что делать. Картинка про Expired token инстаграм что делать. Фото Expired token инстаграм что делать

Напоминаю, что проверить статус токена, срок его действия, и какие на нем разрешения, можно в специальном инструменте Facebook «Access Token Debugger».

Expired token инстаграм что делать. Смотреть фото Expired token инстаграм что делать. Смотреть картинку Expired token инстаграм что делать. Картинка про Expired token инстаграм что делать. Фото Expired token инстаграм что делать

2. Для подключения к Facebook необходимо было получить разрешения «pages_messaging» и «Business Asset User Profile Access». Первое для получения и отправки сообщений, второе для считывания имени и фамилии пользователя.

Expired token инстаграм что делать. Смотреть фото Expired token инстаграм что делать. Смотреть картинку Expired token инстаграм что делать. Картинка про Expired token инстаграм что делать. Фото Expired token инстаграм что делать

В случае с Instagram необходимо получить два похожих разрешения, «instagram_manage_messages» и «instagram_basic». Аналогично, первое для получения и отправки сообщений, второе для считывания имени и фамилии пользователя. В отличии от Facebook, в Instagram имя и фамилия лежат в одном параметре.

Expired token инстаграм что делать. Смотреть фото Expired token инстаграм что делать. Смотреть картинку Expired token инстаграм что делать. Картинка про Expired token инстаграм что делать. Фото Expired token инстаграм что делать

3. При запросе разрешений, создается заявка на верификацию, такая же как и при подключении к Facebook. Но при подключении к Facebook было достаточно вложить screencast, то есть записанное видео, со следующим сценарием:

a) Входим на страницу компании в Facebook.

b) Входим на бекэнд компании, куда приходят сообщения.

c) Показываем, как сообщения со страницы попадают на бекэнд, и как уходят – приходят ответы на эти сообщения.

При этом пользователь, от которого отправляем сообщения, должен быть добавлен в роль Тестовые пользователи приложения:

Expired token инстаграм что делать. Смотреть фото Expired token инстаграм что делать. Смотреть картинку Expired token инстаграм что делать. Картинка про Expired token инстаграм что делать. Фото Expired token инстаграм что делать

В случае с Instagram, есть два существенных момента:

3.1. На текущий момент, на август 2021 г., Instagram пропускает на бекэнд сообщения только если сообщения отправляем в Instagram на страницу компании, в имени которой есть префикс test_

Так как вряд ли вы будете переименовывать официальный Instagram экаунт компании, то конечно нужно создать тестовую страницу компании в Instagram, и ее соединить с тестовой страницей компании в Facebook, и далее все это указать в настройке вебхука. На скрине префикс test_ есть и у страницы компании, куда отправляем сообщения, и на всякий случай, для верности, имя тестового пользователя, который отправляет сообщения, тоже начинается с test_:

Expired token инстаграм что делать. Смотреть фото Expired token инстаграм что делать. Смотреть картинку Expired token инстаграм что делать. Картинка про Expired token инстаграм что делать. Фото Expired token инстаграм что делать

По поводу нужен ли префикс test_ в имени тестового пользователя: в группе тех.поддержки мессенджера ответили, что нет, префикс test_ нужен только у тестовой страницы, получающей сообщения. Но до этого, при прохождении процедуры верификации, я видел, как верификатор Facebook переименовал учетку тестового пользователя, добавил префикс test_. Поэтому лишним не будет, пусть префикс test_ будет в Instagram как у отправителя, так и у получателя.

Если отправлять заявку без учетки от бекэнда, то будет вот такая куча отказов, с ссылкой «читайте документацию»:

Expired token инстаграм что делать. Смотреть фото Expired token инстаграм что делать. Смотреть картинку Expired token инстаграм что делать. Картинка про Expired token инстаграм что делать. Фото Expired token инстаграм что делать

4. После формирования запроса на доступы «instagram_manage_messages» и «instagram_basic» у приложения автоматически будут добавлены продукты «Facebook Login» и «Instagram Graph API». Хотя собственно для обмена сообщениями в этих продуктах ничего настраивать не нужно, Facebook добавляет их именно для интеграции страницы компании в Facebook со станицей компании в Instagram. Удалить эти продукты из приложения невозможно. Недостатком является то, что верификатор может начать искать на входе в бекэнд кнопку входа через учетку Facebook. Поэтому в заявке можно отметить, что продукт «Facebook Login» не используется в работе бекэнда.

Expired token инстаграм что делать. Смотреть фото Expired token инстаграм что делать. Смотреть картинку Expired token инстаграм что делать. Картинка про Expired token инстаграм что делать. Фото Expired token инстаграм что делать

5. Если в заявке на верификацию есть текст на русском языке, и/или интерфейс App Dashboard переключен на русский язык, то заявка будет несколько часов висеть в статусе «Переводится». Поэтому лучше писать заявку на английском, и кажется, интерфейс App Dashboard лучше переключить на английский.

6. После успешной верификации приложения эти самые два заветных разрешения «instagram_manage_messages» и «instagram_basic» перейдут в статус «Active».

Expired token инстаграм что делать. Смотреть фото Expired token инстаграм что делать. Смотреть картинку Expired token инстаграм что делать. Картинка про Expired token инстаграм что делать. Фото Expired token инстаграм что делать

We are currently in phase 2 of the global rollout of the Instagram Messaging. Instagram accounts with follower count between 1K-100K are able to connect to the API. We plan to include remaining accounts for the last phase by end of Q3. Please check this page for updates.

То есть, если у страницы вашей компании в Instagram подписчиков больше, чем 100К, то сообщения доходить до бекэнда не будут. Это так, и это подтвердили в группе тех.поддержки Facebook. Нужно ждать до конца Q3.

7. Вопросы по подключению к Messaging Platform можно задавать в официальной группе Facebook, админы отвечают быстро.

Источник

How to refresh access_token without a refresh_token with instagram api

I am looking to refresh my access_token for my instagram client, so that my users won’t need to login every time the access token expires. Is there a way to do this without a refresh_token (the instagram api response does not contain a refresh_token).

Here is the response object for the instagram oauth api:

I would expect for there to be a «refresh_token» field in the response so that later we can request a new «access_token».

Expired token инстаграм что делать. Смотреть фото Expired token инстаграм что делать. Смотреть картинку Expired token инстаграм что делать. Картинка про Expired token инстаграм что делать. Фото Expired token инстаграм что делать

2 Answers 2

First, you’ll need to get a long-lived access token using the regular access token (which is only valid for one hour):

Then, you can refresh the long-lived token by requesting the GET /refresh_access_token endpoint using the long-lived token it-self:

Refreshing a long-lived token makes it valid for 60 days again.

You can check the Instagram documentation for more details.

Expired token инстаграм что делать. Смотреть фото Expired token инстаграм что делать. Смотреть картинку Expired token инстаграм что делать. Картинка про Expired token инстаграм что делать. Фото Expired token инстаграм что делать

There is no way to refresh the token without the user re-authorizing with their account. There is a notice about it on the link you posted:

Even though our access tokens do not specify an expiration time, your app should handle the case that either the user revokes access, or Instagram expires the token after some period of time. If the token is no longer valid, API responses will contain an “error_type=OAuthAccessTokenException”. In this case you will need to re-authenticate the user to obtain a new valid token. In other words: do not assume your access_token is valid forever.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *