InstagramのAPIにアクセスして自分の情報を取得しようと思った話 (自分用メモ)
APIの利用には審査が必要な場合があります
大雑把に手を出そうとしたときに、下記のポイントが理解しきれていなかったのでメモ。
Sandbox Mode
Permissions Review
Permissions Review • Instagram Developer Documentation
- ユーザーが彼らのコンテンツを、第三者と共有するのを助ける
- 広告主とブランドが、彼らの視聴者及びデジタルメディアの権利を、理解し運用を助ける
- 放送社と出版社が、彼らのデジタルメディアの権利を、主張し適切な態度を助ける
APIのたたき方 (メモ)
- クライアントを登録する Instagram Developer Documentation
- 登録後に発行されるクライアントIDと必要なScopeをURLに付加する (例: https://api.instagram.com/oauth/authorize/?client_id={CLIENT-ID}&redirect_uri={Valid redirect URIs}&response_type=token&scope=public_content+likes )
- "Valid redirect URIs"にACCESS-TOKENが付加された形でリダイレクトされる。
Login Permissions (Scopes)
自分の"いいね!"した投稿が取れない?
https://api.instagram.com/v1/users/self/media/liked?access_token=ACCESS-TOKEN
↓
{"pagination": {}, "data": [], "meta": {"code": 200}}
Stack Overflowにも同じ悩みが投稿されていました。
stackoverflow.com
ななめ読みしましたが、すでに"いいね!"した自分の投稿はとれないが、ACCESS-TOKENを使っていいねした投稿は見れるとのこと。
<!DOCTYPE html> <html> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <title>Instagram POSTテスト</title> </head> <body> <form action="https://api.instagram.com/v1/media/{media-id}/likes" method="post"> <input name="access_token" value="ACCESS-TOKEN"> <button>送信</button> </form> </body> </html>
↓
{"data": null, "meta": {"code": 200}}
↓
https://api.instagram.com/v1/users/self/media/liked?access_token=ACCESS-TOKEN
↓
(さっきPOSTした投稿のいいねのみ) とれた…!
つまり、マジメにAPIで情報を取得したいのであれば、ちゃんと設計する必要があるということですね。
できることは簡単そうだけど、どう活用するか考えないとアプリとして審査を通過できるクオリティにはならんよね。。
やりたいこと
"いいね"した投稿の整理なんやけど、アプリからしか触れんのでどうにかしたいんやけどなぁ。
しおりのアイコン (コレクション? SAVED と表記されることもあるみたい) みたいに操作性がいいわけじゃないし。