質問: data.data[i]; $(".instagram").append( $("").addClass("image").append($("").attr("href", d.link).attr("width", "100%").append($("").attr("src", d.images.low_resolution.url))));} } }); }); ``` <USER_ID>を「self」または自身のuser_idにした場合は問題なく写真を表示することができましたが、 こちらを別のユーザーのuser_idに設定した場合は、正しく写真を表示することが出来ませんでした。 また、console.log(d)で取得したデータに下記の情報が返されていました。 ``` code:400 error_message:"This request requires scope=public_content, but this access token is not authorized with this scope. The user must re-authorize your application with scope=public_content to be granted this permissions." error_type:"OAuthPermissionsException" ``` 情報を取得しようとしたユーザーアカウントについては、Instagram開発側の設定画面にて 「Sandbox Users」に招待した上、ステータスは「accepted」になっているにもかかわらず、取得することができませんでした。 またconsoleのメッセージ内に `This request requires scope=public_content ~` とあることから、同じく開発設定画面内の「Permission」タブ内の「Review Status」を変更することで、 対応可能ではないかと考えたものの、こちらの変更手続きの方法が分からず、「public_content」のステータスは「N/A」のままとなっており、こちらが原因である可能性も予想しております。 そこで質問させていただきたいのは、 **1.現状のコードの改変、または設定の変更(手続きなど)を行うことで、他のユーザーの情報取得が可能かどうか。 2.解決出来る場合、どのような対応を取ればよいか。 3.現状において他のユーザーの写真を表示できない理由・原因は何であったか。** となります。 2015年11月に仕様変更があったとのことで、調べてみたものの新旧の情報が入り乱れていると思われ、InstagramもJavaScriptも知識の浅い自分には正確な情報が得難く、途方に暮れております。 何卒よろしくお願いいたします。
回答: アクセストークンの取得時に、パーミッションを設定する必要があるようです。 > > *https://instagram.com/oauth/authorize/?client_id=【CLIENT-ID】&redirect_uri=【REDIRECT-URL】&response_type=token***&scope=public_content** > > > 【InstagramAPI 設置メモ。自分の投稿リストを取得するだけだったのにいろいろと面倒だったので、後からの覚書。 – へっぽこ開発室】 【Instagram APIにSandboxなるステータスが追加されていた。】 そのため、 1.質問文にある部分のコード改変は行わなくとも写真は取得可能 2.解決には適切なパーミッションをつけたアクセストークンを再取得 3.パーミッション不足 だったのかなと考えられます。 試してみてください。