Instagramアカウントからデータを取得するアプリがあります。このアプリを1回認証し、アクセストークンを取得しました。しかし、このトークンの有効期限が切れるとどうなりますか?トークンの有効期限が切れるたびにアプリを承認する必要がありますか?認証コードから別のアクセストークンを受け取ることはできますか?いいえの場合、参加せずに常にアプリからアカウントからデータをプルするにはどうすればよいですか?ありがとう。
しかし、このトークンの有効期限が切れるとどうなりますか?
私の知る限り、Instagramのアクセストークンは現在有効期限が切れていません。
有効期限は含まれていないことに注意してください。 access_tokensには明示的な有効期限はありませんが、ユーザーがアクセスを取り消すか、一定期間後にトークンを期限切れにするケースをアプリで処理する必要があります。この場合、応答のメタには「error_type = OAuthAccessTokenError」が含まれます。つまり、access_tokenが永久に有効であると想定しないでください。
トークンの有効期限が切れるたびにアプリを承認する必要がありますか?
現時点では、トークンの有効期限が切れていないため、これを行う必要はありません。トークンの有効期限が切れると、対応する警告またはエラーコードとメッセージが送信されますので、対処する必要があります。
参加せずに常にアプリからアカウントからデータをプルするにはどうすればよいですか?
あなたは以下を試すことができます:
Sharedpreferenceを使用して、アクセストークンを保存します。
Accesstoken(Authenticated requests)を必要とするデータを最初に取得しようとするときは、まずaccesstokenが保存されているかどうかをsharedpreferenceで確認します。はいの場合、ログインする必要はありません。そのアクセストークンを使用してください。 accesstokenが設定されていない場合は、instagramの資格情報を使用してログインし、accesstokenを取得して共有設定で共有し、それを以降のリクエストに使用します。
Instagramログアウトオプションを提供できます。このオプションでは、accessdokeをsharedprefernceからクリアするだけです。
これがあなたのお役に立てば幸いです。
更新-これはコメントに記載されているように機能しなくなりました
十分に文書化されていませんが、 投稿のフィードを取得するために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
しかし、これはドキュメントで明確にされていません。
Instagramアクセストークンの有効期限は任意です。私の経験から過去7か月で2回。
私は参加せずにトークンを再生成する方法を見つけませんでした、唯一の有効な解決策は、公式のAPIを避けて次のようなものを使用することです: https://stackoverflow.com/a/33783840/
過去3週間、新しいトークンを複数回作成し、2日後に失効しましたが、3年前に作成された一部のトークンが失効しなかったことにも気付きました。また、Instagramのドキュメントによると、トークンは近い将来いつでも期限切れになる可能性があります。
この時点で、ユーザーの最後の投稿が次のようなユーザー名の後に「/?__ a = 1」でURLを追加することを示すハックがあります
https://www.instagram.com/vaseem.ishak/?__a=1
あなたは画像テキストを含むユーザーの最後の投稿を得るでしょう、などのようなコメントはありません