У меня есть приложение, которое извлекает данные из моей учетной записи Instagram. Я разрешил это приложение один раз и получил токен доступа. Но я волнуюсь, что, если истечет этот токен? Должен ли я разрешать приложение каждый раз, когда токен истекает? Могу ли я получить еще один токен доступа из кода auth? Если нет, что я могу сделать, чтобы приложение всегда извлекало данные из аккаунта без моего участия? Благодарю.
Срок действия токена доступа к Instagram
Ответ 1
Но я беспокоюсь, что, если этот токен истекает?
AFAIK, Instagram accesstokens не истекает в настоящее время.
Примечание: Из документов Instagram.
Обратите внимание, что мы не включаем время истечения срока действия. У нашего access_tokens нет явного истечения срока действия, хотя ваше приложение должно обрабатывать случай, когда либо пользователь отменяет доступ, либо мы истекаем токен через некоторое время. В этом случае ваши ответы meta будут содержать "error_type = OAuthAccessTokenError". Другими словами: не предполагайте, что ваш access_token действителен навсегда.
Должен ли я разрешать приложение каждый раз, когда истекает токен?
На данный момент вам не нужно это делать, поскольку токен не истекает. Когда и когда токен истечет в будущем, вам будет отправлен соответствующий код предупреждения или ошибки и сообщение, которое вам нужно обработать.
что я могу сделать, чтобы мое приложение всегда извлекало данные из учетной записи без мое участие?
Вы можете попробовать следующее:
-
Используйте sharedpreference для хранения accesstoken.
-
В первый раз, когда вы пытаетесь получить данные, требующие accesstoken (аутентифицированные запросы), сначала проверьте в sharedpreference, хранится ли accesstoken или нет. если да, то вам не нужно входить в систему, просто используйте этот accesstoken. Если у вас нет предпочтения в accesstoken, выполните регистрацию с использованием учетных данных instagram, получите accesstoken, а затем поделитесь им с разделяемыми предпочтениями и используйте это для последующих запросов.
-
Вы можете предоставить вариант выхода из системы instagram, в котором вам просто нужно очистить accesstoken от sharedprefernce.
Надеюсь, это поможет вам.
Ответ 2
Пока недостаточно хорошо документировано, Стоит отметить, что для получения фида сообщений не требуется accessToken.
https://api.instagram.com/v1/users/{user-id}/media/recent/?access_token=ACCESS-TOKEN
также можно назвать передачей только вашего client_id
https://api.instagram.com/v1/users/{user-id}/media/recent/?client_id=CLIENT_ID
Однако это не указано в их документации.
Ответ 3
токен доступа к Instagram истекает в произвольные моменты времени. Два раза в течение последних 7 месяцев из моего опыта.
Я не нашел способа восстановить токен без моего участия, единственное допустимое решение IMHO - это избежать официального API и использовать что-то вроде: fooobar.com/questions/48451/...
Ответ 4
За последние 3 недели я создавал новый токен несколько раз и срок его действия истекает через 2 дня, но я также замечаю, что срок действия некоторых токенов не истек, которые были созданы до 3 лет. Кроме того, Instagram документы говорят, что токен может истечь в любое время в ближайшее время.
В настоящий момент существует хак, чтобы показать пользователю последнее сообщение, просто добавьте URL с '/? __ a = 1' 'после имени пользователя, например
https://www.instagram.com/vaseem.ishak/?__a=1
Вы получите последнее сообщение пользователя с текстом изображения, без комментариев, как, например, просто копайте немного возврата JSON