web-dev-qa-db-ja.com

クライアントIDを使用してOAuthAccessTokenException400エラーをスローするInstagramAPI

私は次のAPIを使用して、パブリックアカウントから最新の3つの投稿を取得し、Webサイトに表示していました。

https://api.instagram.com/v1/users/{user-id}/media/recent/?client_id={client-id}&count=3

Client-idを取得するためのアプリを作成しました。
ただし、本日から、このAPIは次の例外をスローし始めました。

{
    meta: {
        error_type: "OAuthAccessTokenException",
        code: 400,
        error_message: "The access_token provided is invalid."
    }
}

これを解決する方法を教えてください。

6
spal

日付に基づくと、私のように、今日API移行の影響を受けた古いアプリがある可能性があります。つまり、Instagramは、ユーザーが公開で共有するデータであっても、すべてのAPIリクエストをユーザーごとに認証することを要求することで、プラットフォームの開発をさらに煩わしくすることにしました。したがって、あなた(私のように)はおそらくあなたのアプリを完全に再設計するでしょう。

伝えるには、 instagram.com/developer にログインし、[クライアントの管理]をクリックします。次に、使用しようとしているキーのセットの横にある編集を押します。上部近くに、「クライアントステータス」というセクションがあります-「サンドボックスモード」と表示されている場合 '、これからの楽しい時間!うまくいけば、10人未満のユーザーとやり取りし、サンドボックスモードのままでいられます。そうでない場合は、エッセイを書き、ビデオを撮影し、基本的に許可を取り戻すように懇願する必要があります(おそらく、数か月以内に、Instagramのインターンが最終的に掘り下げるアプリケーションの山の中であなたに降りる彼の方法)。それが何かelesを読むなら、あなたは完全に別の問題を抱えているので、あなたの幸運な星に感謝するべきです。

それまでの間、私は、問題を説明し、許可を得ようとするために、私たちの多くの提携Instagramアカウントのメンテナに数十通のメールを送信することに戻ると思います。それまでに承認されれば、すべてのソーシャルメディア土曜日の大規模なイベントの間、ディスプレイは壊れません。別のオプションは、OAuthなしのjson応答を使用することかもしれません ここで利用可能 、しかしそれは利用規約に違反するかもしれません。

13
James Danylik

私にはこれに対する解決策があります。私と同じコードを使用している場合は、おそらくそうです。これを使って最後の2枚の画像を引っ張っていました。

https://api.instagram.com/v1/users/{user-id}/media/recent/?client_id={client-id}&count=3

これを機能させるために私がしたことは次のとおりです。

  1. アプリケーションとして使用しているInstragramアカウントにログインします。

  2. 開発者(API)エリアに移動します。 https://www.instagram.com/developer/clients/manage/

  3. クライアントを管理します。 WebサイトのURLが有効なリダイレクトURLと同じであることを確認してください。
  4. 新しいサンドボックスユーザーを追加します。到達したいIG写真のアカウントを入力します。
  5. 次のURLにアクセスしてください:https://api.instagram.com/oauth/authorize/?client_id=CLIENTID&redirect_uri=REDIRECT_URI&response_type=tokenここで、クライアントIDは、上記の前のアプリで使用したものと同じです。
  6. 戻ってトークンURLにアクセスする必要があります。アクセストークンをコピーします。
  7. IGの写真が欲しいアカウントとしてログインします。サンドボックスユーザーとして追加したアカウントを開発者に移動し、サンドボックスの招待を承認します。
  8. 上記の元のURLをアクセストークンを使用してhttps://api.instagram.com/v1/users/{user-id}/media/recent/?client_id={client-id}&count=3からhttps://api.instagram.com/v1/users/self/media/recent/?access_token=ACCESS_TOKENに変更します。

これはIGAPI Mediaエンドポイントのドキュメントです: https://www.instagram.com/developer/endpoints/users/

その後、すべてうまくいきました。サンドボックスにいる間に、最後の3枚の写真をプルできるか、この時点で、JSONの読み取り方法を理解できるはずです。

7
donlaur

6月1日のInstagramプラットフォームの変更後、アプリは承認されましたか?

http://developers.instagram.com/post/145262544121/instagram-platform-update-effective-june-1-2016

1
Evonet

何らかの理由で、トークンは無効になりました。もう一度リクエストしてください。

トークンが無効になる理由として考えられるもの:

  • パスワードを変更しました
  • アカウントを確認しました
  • 別の国からログイン
0
Atl Occ