InstagramのAPIを使用して出来ることのまとめ。(2017/07/11時点)
Facebookの個人情報流出事件の影響下2018年4月5日時点で大幅に使用できるAPIが制限される
=> https://www.instagram.com/developer/changelog/
エンジニアの方は公式ドキュメントを見た方がいい。
https://www.instagram.com/developer/endpoints/
なお、InstsagramAPIは2020年に向けて段階的に
使用できなくなっていく。
2018年7月31日まで使用可能なもの
- Follower List
- Relationships
- Commenting on Public Content
2018年12月11日まで使用可能なもの
- Commenting
- Public Content
- Likes
- Subscriptions
2020年には非推奨になるもの
- Basic
原文
The following will be available until July 31, 2018:
Follower List - to read the list of followers and followed-by users
Relationships - to follow and unfollow accounts on a user’s behalf
Commenting on Public Content - to post and delete comments on a user’s behalf on public media
The following will be available until December 11, 2018:
Commenting - to post and delete comments on a user’s behalf on owned media
Public Content - to read any public profile info and media on a user’s behalf
Likes - to like and unlike media on a user’s behalf
Subscriptions - to receive notifications when media is posted
The following will be available until early 2020:
Basic - to read a user’s profile info and media
今後はビジネスアカウント用InstagramAPIの方がメインになっていくとのこと
InstagramのAPI
Instagramはユーザーの情報や、ハッシュタグの情報などを外部向けに公開している。
その公開情報にアクセスできるURLがいくつか提供されている。
またビジネスアカウント向けには別途記事を作成しているので
そちらを参照していただきたい。
非エンジニア向けビジネスアカウント用InstagramAPI解説
APIの利用について
Instagram APIを使ってサービスを展開するには
Instagramからの審査を受け承認を得なければならない。
また、APIを使用するにはいくつかルールがありそのルールを満たしている必要がある。
1. To help individuals share their own content with 3rd party apps
=> サードパーティとユーザーのコンテンツを共有する
2. To help brands and advertisers understand and manage their audience and digital media rights
=> ブランドや広告主が、視聴者やデジタルメディアの権利を理解したり管理する。
3. To help broadcasters and publishers discover content, get digital rights to media, and share media with proper attribution
=> 放送局や出版社がコンテンツを発見できたり、デジタルメディアの権利を取得できたり、適切にシェアするのを助ける。
他にも色々あるが、気になる方は下記リンクへ
Platform Policy
OAuth認証後にアクセストークンを取得
InstgaramのAPIを利用するにはユーザーにアプリの認証(誤解を恐れずに言えばInstagramアプリでログインする機能のようなもの)を行ってもらい、
対象ユーザーのアクセストークンを取得する。
このアクセストークンはAPIを使用するのに必要なものでユーザーごとに異なる。
制限
InstagramのAPIは1アクセストークンあたり、1時間に5000回までリクエストを行うことができる。
ただし、POST/DELETEメソッド関連は1時間あたりの制限が30~60回ほどのものもある。
https://www.instagram.com/developer/limits/
POST/DELETE系のリクエストは簡単にいうとAPIを使用することである投稿にコメントしたり、コメントを削除したりなど
情報の取得以外の挙動が発生するものに使用する。
また、上記のような挙動が発生するものはInstagramに別途特別な申請がいるため、
なにか実装したい機能があるときは詳しくはエンジニアに相談してみてほしい。
それぞれAPIで出来ること
ユーザー関連
ユーザー情報
認証済みのユーザーや、
ユーザーIDがわかっているユーザーの情報を取得することができる。
取得できる情報
- ユーザーID
- ユーザー名
- フルネーム
- プロフィール画像
- 自己紹介文
- 登録ウェブサイトURL
- 投稿数
- フォロー数
- フォロワー数
- ビジネスアカウントかどうか
投稿情報
ユーザーの投稿情報や、ユーザーがいいねした情報を取得することができる。
取得できる情報
- コメント数
- キャプション情報
- 投稿ID
- いいね数
- 投稿リンク
- 投稿時間
- 投稿URL
- 投稿タイプ(image/video)
- 画像にタグづけされているユーザー(どの位置にどのアカウントが写っているか)
- 使用しているフィルター
- 位置情報
- 使用されているタグ
ユーザー検索
Instagramのユーザー名で検索をすることができる。
フォロー・フォロワー関連
フォロー・フォロワー情報
認証済みのユーザーの
- フォローしているアカウント
- フォロワーのアカウント
- フォローリクエストを送っているアカウント
を取得することができる。
取得できる情報
- ユーザー名
- プロフィール画像
- フルネーム
- ユーザーID
フォロー関連
認証済みのユーザーとあるユーザーの関係を取得することができる。
- フォローしている/されている
- フォローリクエストを送っている/送られてきている
- ブロックしている
- とくになにもない
また、フォローする・ブロックするなどもできる。
投稿関連
投稿情報取得
ある投稿の情報を取得することができる。
取得できる情報
- コメント数
- キャプション情報
- 投稿ID
- いいね数
- 投稿リンク
- 投稿時間
- 投稿URL
- 投稿タイプ(image/video)
- 画像にタグづけされているユーザー(どの位置にどのアカウントが写っているか)
- 使用しているフィルター
- 位置情報
- 使用されているタグ
ショートコードの情報
ショートコードからも投稿情報を取得できる。
上記の投稿リンクでいうと BWYBplMA92B
の部分。
投稿情報検索
とある緯度経度から5km以内の投稿情報を取得することができる。
コメント関連
コメント情報
ある投稿に紐づくコメント情報を現状最新120件まで取得できる。
120件に関しては公式ドキュメントに記載はない。(いいね情報も同じく)
情報源: https://stackoverflow.com/questions/29058661/how-to-get-all-likes-for-a-given-media-id
取得できる情報
- コメント日
- コメント内容
- コメントしたユーザー情報
- ユーザー名
- プロフィール画像
- ID
- フルネーム
- コメントID
また、コメントしたりコメントを削除したりといったこともできる。
いいね関連
いいね情報
ある投稿にいいねしたユーザーの情報を最新120件まで取得できる。
取得できる情報
- ユーザー名
- 姓名
- ユーザーID
また、ある投稿にいいねしたりいいねを解除したりもできる。
タグ関連
ハッシュタグの投稿数
あるハッシュタグの投稿数を取得できる。
ただし、ハッシュタグによっては結果が取得できないものがある。
{"meta":{"error_type":"APINotAllowedError","code":400,"error_message":"This tag cannot be viewed"}}
情報源: instagram media endpoint bug: only returns limited photos
ハッシュタグの最近の投稿
あるハッシュタグの投稿を取得できる。
取得できる情報
- コメント数
- キャプション情報
- 投稿ID
- いいね数
- 投稿リンク
- 投稿時間
- 投稿URL
- 投稿タイプ(image/video)
- 画像にタグづけされているユーザー(どの位置にどのアカウントが写っているか)
- 使用しているフィルター
- 位置情報
- 使用されているタグ
ハッシュタグの部分一致検索
ハッシュタグの部分一致検索をして、
ハッシュタグごとの投稿数を取得できる。
例) snowyで検索したとき
snowy => 投稿数: 43590
snowyday => 投稿数: 3264
snowymountains => 投稿数: 1880
位置情報関連
位置情報
とある位置の情報を取得することができる。
取得できる情報
- 位置情報ID
- 位置情報名
- 緯度
- 経度
投稿情報
とある位置の投稿を取得することができる。
取得できる情報
- コメント数
- キャプション情報
- 投稿ID
- いいね数
- 投稿リンク
- 投稿時間
- 投稿URL
- 投稿タイプ(image/video)
- 画像にタグづけされているユーザー(どの位置にどのアカウントが写っているか)
- 使用しているフィルター
- 位置情報
- 使用されているタグ
位置情報検索
緯度、経度から750メートル以内の位置情報を取得できる。
取得できる情報
- 位置情報ID
- 位置情報名
- 緯度
- 経度
Subscription
リアルタイムにユーザーの情報を取得できる機能。
ただし、ドキュメントに記載はないが1アプリあたりに30件までという説が濃厚。(要検証)
情報源: https://stackoverflow.com/questions/27461132/instagram-real-time-api-limit-of-subscriptions
- ユーザーが投稿したとき
- 指定したハッシュタグに新しい投稿があったとき
- 指定した場所IDに投稿があったとき
- 指定した位置範囲内で新しい投稿があったとき
に投稿IDがリアルタイムにInstagramから指定したサーバーに送られてくるという機能。
ビジネスAPI
Instagramのビジネスアカウントのインサイト情報などが取得できるAPI
詳しくはこちらに記載しております。
非エンジニア向けビジネスアカウント用InstagramAPI解説