web-dev-qa-db-ja.com

ユーザーの操作なしでInstagramのaccess_tokenを取得する方法(新しいAPI)?

Instagramの新しいAPIの変更により、何らかのユーザー操作がなければaccess_tokenを取得する方法はないようです。私が見つけたすべてのドキュメントには、ユーザーインタラクションを介してアプリを承認する際にlogginの必須パススルーがあると記載されています( https://www.instagram.com/developer/authentication/ ) :

サーバー側(明示的)フロー

ステップ1:ユーザーを認証URLに誘導します

https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=code 注:オプションのスコープパラメーターを指定して、「基本的な」権限スコープ。スコープの詳細をご覧ください。

注:サーバー固有の状態を実行するために、オプションの状態パラメーターを指定できます。たとえば、これを使用してCSRFの問題から保護できます。

この時点で、ユーザーにログイン画面を表示し、次にアプリにInstagramデータへのアクセスを許可する確認画面を表示します。

クライアント側(暗黙的)認証

ステップ1:ユーザーを認証URLに誘導します

https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token この時点で、ユーザーを表示しますログイン画面と確認画面が表示され、アプリにInstagramデータへのアクセスを許可します。明示的なフローとは異なり、ここでの応答タイプは「トークン」であることに注意してください。

定期的に更新されるaccess_tokenを使用して、ユーザーの操作なしでアクセストークンを取得することは可能ですか?

自分のサイトにフィードを表示しようとしていますが、APIの変更後に提供される埋め込みオプション以外の方法が見つかりません。

編集:私の質問は Instagram OAuthアプリのアクセストークンの有効期限 の重複としてマークされますが、有効期限を把握することは考えていません(これはで明示的に定義されていませんIGドキュメント)。access_tokenを取得するための純粋にプログラム的な方法が必要です。

15
ninjasense

私もこの問題を抱えています。私はあなたがあなたのために物事を実行するためのスクリプトを書きたいと思っていると思います。

1つの(かなり不完全な)解決策は、次のリダイレクトからコードを取得する前に、Selenium、ファントムJS、ヘッドレスクローム、またはその他の同様の技術を使用してログイン画面にアクセスし、アカウントの資格情報を入力する(セキュリティをウィンドウから外す)ことです。 URL.。

Instagramがこのタイプのユーザー不要のアカウントオプションを許可していないのは残念です。

1
Nick Knuckle

アクセストークンをサーバーに保存できます。有効である限り、ユーザーにログインを要求する必要はありません。

アクセストークンには有効期限があることに注意してください。したがって、その場合も処理する必要があります[つまり、有効期限が切れたら、ユーザーに再度ログインして、新しいアクセストークンを取得して保存するように依頼します]

0
coderz

ここInstagram開発者ドキュメントでは、次のように述べています。

https://www.instagram.com/developer/authorization/

個人のウェブサイトのコンテンツ表示。開発者であり、WebサイトでInstagramコンテンツを紹介したい場合は、レビューのためにアプリを送信する必要はありません。サンドボックスモードでクライアントを使用することにより、アクセス許可を付与したサンドボックスユーザーの最後の20メディアに引き続きアクセスできます。

したがって、Instagramでクライアントを既に設定している場合は、「サンドボックス」モードである限り、APIから投稿を取得し続けることができます。自分のユーザーアカウントまたはサンドボックス権限(10個まで)を付与したユーザーの投稿のみを取得できます。

アクセストークンをまだ持っていない場合は、Oauth.ioなどを使用できます。 (それは無料です。)

0
mspseudolus