J'ai une application qui extrait des données de mon compte Instagram. J'ai autorisé cette application une fois et j'ai obtenu un jeton d'accès. Mais je suis inquiet, que se passe-t-il si ce jeton expire? Dois-je autoriser l'application à chaque expiration du jeton? Puis-je recevoir un autre jeton d'accès du code d'authentification? Si non, que puis-je faire pour que mon application tire toujours les données du compte sans ma participation? Merci.
Mais je suis inquiet, que se passe-t-il si ce jeton expire?
AFAIK, les accesstokens Instagram n'expirent pas actuellement.
Remarque: À partir de documents Instagram.
Notez que nous n'incluons pas de délai d'expiration. Nos access_tokens n'ont pas d'expiration explicite, bien que votre application doive gérer le cas où l'utilisateur révoque l'accès ou que nous expirons le jeton après un certain temps. Dans ce cas, la méta de votre réponse contiendra un "error_type = OAuthAccessTokenError". En d'autres termes: ne supposez pas que votre access_token est valide pour toujours.
Dois-je autoriser l'application à chaque expiration du jeton?
Pour le moment, vous n'avez pas besoin de le faire, car le jeton n'expire pas. Au fur et à mesure que le jeton expirera à l'avenir, un code et un message d'avertissement ou d'erreur correspondants vous seront envoyés, que vous devrez gérer.
que puis-je faire pour que mon application tire toujours les données du compte sans ma participation?
Vous pouvez essayer de suivre:
Utilisez la préférence partagée pour stocker le jeton d'accès.
La première fois que vous essayez de récupérer des données qui nécessitent un accesstoken (demandes authentifiées), vérifiez d'abord dans la préférence partagée si l'accesstoken est stocké ou non. si oui, vous n'avez pas besoin de vous connecter, utilisez simplement ce jeton d'accès. Si vous n'avez pas de préférence accesstoken, connectez-vous à l'aide des informations d'identification instagram, obtenez l'accesstoken, puis partagez-le en préférence partagée et utilisez-le pour les demandes suivantes.
Vous pouvez fournir une option de déconnexion instagram dans laquelle il vous suffit de supprimer le jeton d'accès de sharedprefernce.
J'espère que ça te sera utile.
Mise à jour - Cela ne fonctionne plus comme mentionné dans les commentaires
Bien que peu documenté, Il convient de souligner que la récupération d'un flux de messages ne nécessite pas de jeton d'accès.
https://api.instagram.com/v1/users/{user-id}/media/recent/?access_token=ACCESS-TOKEN
peut aussi être appelé en passant juste votre client_id
https://api.instagram.com/v1/users/{user-id}/media/recent/?client_id=CLIENT_ID
Cela n'est cependant pas précisé dans leur documentation.
Le jeton d'accès Instagram expire à des heures arbitraires. Deux fois au cours des 7 derniers mois de mon expérience.
Je n'ai trouvé aucun moyen de régénérer le jeton sans ma participation, la seule solution valide à mon humble avis est d'éviter l'API officielle et d'utiliser quelque chose comme: https://stackoverflow.com/a/33783840/
Au cours des 3 dernières semaines, j'ai créé un nouveau jeton plusieurs fois et son expiration après 2 jours, mais je remarque également que certains jetons n'ont pas expiré qui ont été créés avant 3 ans. En outre, les documents Instagram indiquent que le jeton peut expirer à tout moment dans un proche avenir.
Il y a un hack en ce moment pour montrer le dernier message de l'utilisateur juste ajouter l'URL avec `/? __ a = 1 '' après le nom d'utilisateur tel que
https://www.instagram.com/vaseem.ishak/?__a=1
vous obtiendrez le dernier message de l'utilisateur avec le texte de l'image, pas de commentaire comme etc. juste creusez peu le retour JSON