# Instagram Graph API
## 一般的な用途(引用)
- 公開された写真、ビデオ、ストーリーの取得と管理
- 他のInstagram Businessユーザーおよびクリエイターに関する基本データの取得
- コメントとその返信のモデレート
- 測定媒体とプロファイルの相互作用
- ハッシュタグ付きメディアの発見
- @メンションの発見
- 写真とビデオの公開(現在はクローズドベータ版)
## 利用例 (引用)
- アカウント(ビジネス・クリエイター)
- フォロワーの人数を取得
- メディアデータを取得
- 写真の公開
- タグ付きユーザー付き写真の公開
- 場所付きの写真の公開
- ビデオの公開
- ハッシュタグでタグ付けされたメディアを取得する
- メトリック(インサイト)データの取得 ([こういった統計情報のこと?](https://gaiax-socialmedialab.jp/post-51356/))
- @Mentionsを聞いてコメントに返信する
- キャプション@Mentionsを聞いて返信する
## リアルタイムに取得できる情報 (Webhooks)
- メディアオブジェクトにコメントが付いたとき
- 記事が期限切れになったとき
## 具体的な操作
- POST /{ig-comment-id} —コメントを非表示/再表示します。
- DELETE /{ig-comment-id} —コメントを削除します。
- GET /{ig-comment-id}/replies —コメントへの返信を取得します。
- POST /{ig-comment-id}/replies —コメントに返信する。
- POST /{ig-media-id} —メディアオブジェクトのコメントを無効/有効にするには
- GET /{ig-user-id}/tags —ビジネスアカウントまたは作成者アカウントがタグ付けされたメディアオブジェクトを取得する
- GET /{ig-user-id}/mentioned_comment —ビジネスまたはクリエイターアカウントが@メンションされたコメントに関するデータを取得する
- GET /{ig-user-id}/mentioned_media —キャプションでビジネスまたはクリエイターアカウントが@メンションされているメディアオブジェクトに関するデータを取得する
- POST /{ig-user-id}/mentions —ビジネスまたはクリエイターアカウントが別のInstagramユーザーによって@メンションされたというコメントまたはメディアオブジェクトキャプションに返信する
## 懸念事項
- フォロー数やコンテンツデータ等の詳細情報の取得は、ビジネスアカウント・クリエイターアカウントのユーザーしか取得できない (一般ユーザーは不可)
- APIの使用にはビジネスアカウントが必要
- APIの使用にはInstagramからAPIを使用するアプリに対してレビューを受けてパスしなければならない (手続きが大変そう...)
- 単位時間当たりのリクエストリミットが決まっている。
- 再帰的なデータ取得はパフォーマンス制限がある
ユーザー→フォローしてるユーザー→ユーザー→フォローしている...
## 参考リンク
- [InstagramグラフAPI](https://developers.facebook.com/docs/instagram-api/?locale=ja_JP)
- [リファレンス](https://developers.facebook.com/docs/instagram-api/reference)
- [API使い方:具体例](https://arrown-blog.com/instagram-graph-api/#Instagram_Graph_API)
## 始めるにあたって顧客が用意する情報について
- インスタグラムアカウント(ビジネスに変更は容易)
- Facebookアカウント
参考
[Instagram Graph APIを使おう!](https://hyp.llc/tips/instagram-graph-api/)
## システムで持つ必要がある情報
APIリクエスト時に必要になる情報を発行するために必要な情報。
前項の用意する情報を使って申請・発行する。
- インスタグラムビジネスアカウントID
(ログインIDではなくバックエンド用のIDでAPIリクエストすることで確認できる)
- アクセストークン(認証期限は無制限で発行可能)
### 一つのFacebookアカウントに複数連携することについて
複数連携は可能
Facebookアカウント1に対して、インスタグラムアカウントを複数連携可能
ただし、連携することによる連携機能をどこまで切れるか、
連携することによる弊害がないか、情報が少ないため試してみる必要がある
レブリックデッサン(Facebook)に対して、複数顧客のインスタグラムを連携させることは出来るが、おかしな関係性で連携するため、弊害がありそう?
参考
- [複数のInstagramアカウントを自分のFacebookプロフィールにリンクできますか。](https://www.facebook.com/help/instagram/967981829962154?helpref=hc_fnav)
- [InstagramをFacebookと連携する方法とそのメリット](https://ferret-plus.com/12899)
## 投稿画像は取得可能か
可能。
ただし、取得対象可能なインスタグラムアカウントは、ビジネスアカウントのみ
https://himemo.net/archives/371
## 投稿インサイト情報から取得できる情報とは
大きく分けて、**アカウント**と**メディア**の二種類のインサイト情報が取得できる
[Insights](https://developers.facebook.com/docs/instagram-api/guides/insights)
### インサイト アカウントで取得できる情報
集計対象とする期間・集計期間(1週間ごと等)をパラメータに指定できる。
フォロワーの都市、国、性別、年齢分布...などの指標が取得できる。
例
```
集計対象とする期間:2019年11月1日〜2019年12月31日
集計期間:3日単位
取得結果:上の集計条件でプロフィールのEメールリンクが押された回数(get_directions_clicks)
```
詳細な取得可能な情報はリンク先の**Metrics and Periods**の項を参照
[Insights Account](https://developers.facebook.com/docs/instagram-api/reference/user/insights)
### インサイト メディアで取得できる情報
メディア(写真・動画)に対する、いいねの数、コメント数、表示回数などの指標が取得できる。
インサイト アカウントでは集計条件を指定できるが、インサイト メディアは指定できず、最新の情報だけ。
詳細な取得可能な情報は**Photo and Video Metrics**の項を参照
[Insights Media](https://developers.facebook.com/docs/instagram-api/reference/media/insights)
## アプリレビューについて
どうやら開発の段階ではレビューのプロセスはいらず、全権アクセスできる?
実際に商用利用を開始する時点で用途などをレビューされる。
すぐに試せそうなので実際にAPIを試してみると良さそう。
一部APIでは、フォロワー100人以上いること...などの条件がある。
[アプリのセキュリティ](https://developers.facebook.com/docs/apps/security#sandbox)
## Instagram基本表示API
グラフAPIよりも取得できる情報が少ない代わりにビジネスアカウントじゃなくても良いなどの前提が緩いAPIもあった。
[Instagram基本表示API](https://developers.facebook.com/docs/instagram-basic-display-api)