web-dev-qa-db-ja.com

Instagramアクセストークンの有効期限

Instagramアカウントからデータを取得するアプリがあります。このアプリを1回認証し、アクセストークンを取得しました。しかし、このトークンの有効期限が切れるとどうなりますか?トークンの有効期限が切れるたびにアプリを承認する必要がありますか?認証コードから別のアクセストークンを受け取ることはできますか?いいえの場合、参加せずに常にアプリからアカウントからデータをプルするにはどうすればよいですか?ありがとう。

23
mstar0125

しかし、このトークンの有効期限が切れるとどうなりますか?

私の知る限り、Instagramのアクセストークンは現在有効期限が切れていません。

注:Instagramドキュメントから

有効期限は含まれていないことに注意してください。 access_tokensには明示的な有効期限はありませんが、ユーザーがアクセスを取り消すか、一定期間後にトークンを期限切れにするケースをアプリで処理する必要があります。この場合、応答のメタには「error_type = OAuthAccessTokenError」が含まれます。つまり、access_tokenが永久に有効であると想定しないでください。

トークンの有効期限が切れるたびにアプリを承認する必要がありますか?

現時点では、トークンの有効期限が切れていないため、これを行う必要はありません。トークンの有効期限が切れると、対応する警告またはエラーコードとメッセージが送信されますので、対処する必要があります。

参加せずに常にアプリからアカウントからデータをプルするにはどうすればよいですか?

あなたは以下を試すことができます:

  1. Sharedpreferenceを使用して、アクセストークンを保存します。

  2. Accesstoken(Authenticated requests)を必要とするデータを最初に取得しようとするときは、まずaccesstokenが保存されているかどうかをsharedpreferenceで確認します。はいの場合、ログインする必要はありません。そのアクセストークンを使用してください。 accesstokenが設定されていない場合は、instagramの資格情報を使用してログインし、accesstokenを取得して共有設定で共有し、それを以降のリクエストに使用します。

  3. Instagramログアウトオプションを提供できます。このオプションでは、accessdokeをsharedprefernceからクリアするだけです。

これがあなたのお役に立てば幸いです。

29
Ritesh Gune

更新-これはコメントに記載されているように機能しなくなりました


十分に文書化されていませんが、 投稿のフィードを取得するために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

しかし、これはドキュメントで明確にされていません。

https://instagram.com/developer/endpoints/users/

7
Tom

Instagramアクセストークンの有効期限は任意です。私の経験から過去7か月で2回。

私は参加せずにトークンを再生成する方法を見つけませんでした、唯一の有効な解決策は、公式のAPIを避けて次のようなものを使用することです: https://stackoverflow.com/a/33783840/

2
fain182

過去3週間、新しいトークンを複数回作成し、2日後に失効しましたが、3年前に作成された一部のトークンが失効しなかったことにも気付きました。また、Instagramのドキュメントによると、トークンは近い将来いつでも期限切れになる可能性があります。

この時点で、ユーザーの最後の投稿が次のようなユーザー名の後に「/?__ a = 1」でURLを追加することを示すハックがあります

https://www.instagram.com/vaseem.ishak/?__a=1

あなたは画像テキストを含むユーザーの最後の投稿を得るでしょう、などのようなコメントはありません

0
Dexture