インスタグラム APIの使い方（自分用）

# インスタグラムAPIとは

> 「API」とは、「Application Programming Interface」の頭文字です。
> 
> 英文字だけで意味を理解しようとすると、アプリケーション・プログラミング・インターフェイスで、大雑把に言うと「アプリケーションをプログラミングするためのインターフェース」という意味です。
> 
> インターフェイスとは、コンピュータ用語でいうと、「何か」と「何か」をつなぐものという意味を持ちます。例えば、USBも「パソコン」と「周辺機器」をつなぐものですので、インターフェイスの一つです。
> 
> つまり、APIとは、この「何か」と「何か」が「アプリケーション、ソフトウェア」と「プラグラム」をつなぐもの、という意味になります。
> 
> [今さら聞けないIT用語：やたらと耳にするけど「API」って何？](https://data.wingarc.com/what-is-api-16084)

# API利用までの手順

## 必要なもの

* インスタグラムのビジネスアカウントorクリエイターアカウント
* facebookアカウント

## Facebookページとインスタアカウントを紐づける

1. Facebookページを作成する
※「コミュニティまたは公人・著名人」で進めています。
<img width="354" alt="68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3536373436342f62323536376630342d366565392d303065372d626535372d3564643839303064343463302e706e67.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567464/80a476a1-2a11-74e6-d882-ad013b9e6077.png">
2. インスタグラムのアカウントと紐づける
<img width="1169" alt="スクリーンショット 2020-07-13 9.53.50.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567464/47fb6d3f-b762-4ce9-e9e0-c5184dc57d5b.png">
3. インスタアカウントの詳細が表示されればOKです
<img width="1168" alt="68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3536373436342f64636161383139362d616131662d346639312d396435352d6638633332663431333134342e706e67.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567464/e8ce6080-ed5e-3df7-e8a1-0cc5fc99d005.png">


## Facebookアプリを作成する

1. [Facebook for Developers](https://developers.facebook.com/)を開く
2. アプリを作成する
<img width="1372" alt="スクリーンショット 2020-07-13 10.09.56.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567464/6738d7be-cf08-364c-f215-7272c5bfe450.png">
<img width="1374" alt="スクリーンショット 2020-07-13 10.10.10.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567464/23c17951-fb27-3c3c-3439-64ae8d106d33.png">
<img width="621" alt="スクリーンショット 2020-07-13 10.10.41.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567464/5c149540-4a45-6fa9-9711-a81ae91d1553.png">
<img width="674" alt="68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3536373436342f34393365376366362d303737362d663265652d623130392d3764396536633263366130382e706e67.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567464/c620060e-fe22-3a28-36ae-aeb04bf2fe28.png">

## トークンを取得する

### 第一トークン取得

1. グラフAPIエクスプローラーを開く
<img width="1374" alt="スクリーンショット 2020-07-13 10.25.52.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567464/ab5c02ae-cd4d-2dd9-686f-b0ef9a34eb0e.png">

1. "ユーザーまたはページ"で"**ユーザーアクセストークンを取得**"を選択する
<img width="442" alt="68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3536373436342f31643530353262372d643263652d653237622d386339652d3565616364623730616532372e706e67.jpeg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567464/6cd193c9-847e-bfe4-27ee-e941aece8b10.jpeg">
2. "**アクセス許可**"に下記を追加する
    * Events Groups Pages
        * business_management
        * pages_show_list
        * pages_manage_ads
        * pages_manage_metadata
        * pages_read_engagement
        * pages_read_user_content
    * Other
        * instagram_basic
        * instagram_manage_insights
        * instagram_manage_comments
    * public_profile（デフォルト）
3. "**Generate Access Token**"をクリックする
<img width="438" alt="68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3536373436342f34613864616166382d343164312d623039652d316337332d6561646132613264353532332e706e67.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567464/e10c1f9a-0a60-29c1-9709-b62c7fc43a09.png">
4. 完了
<img width="438" alt="68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3536373436342f34613864616166382d343164312d623039652d316337332d6561646132613264353532332e706e67.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567464/e10c1f9a-0a60-29c1-9709-b62c7fc43a09.png">

### 第二トークン取得

1. アプリのIDとパスワードを取得する
<img width="1373" alt="68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3536373436342f65386233643961362d376361372d653635322d326535612d3663393063356563316166622e706e67.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567464/a2a16378-98fb-3d23-5e3b-68c54a634eb5.png">
2. URLを作成する
下記を組み合わせてブラウザで開いてください
  * `https://graph.facebook.com/v7.0/oauth/access_token`
  * `?grant_type=fb_exchange_token`
  * `&client_id=【アプリID】`
  * `&client_secret=【アプリパスワード】`
  * `&fb_exchange_token=【第一トークン】`
3. 一番上の青枠で囲まれた部分が第二トークンです。
<img width="1365" alt="スクリーンショット 2020-07-15 18.18.19.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567464/03a0953e-65d0-317a-b8e4-63690dcee4f4.png">


### 第三トークン取得

1. URLを作成する
下記を組み合わせてブラウザで開いてください
  * `https://graph.facebook.com/v7.0/me`
  * `?access_token=【第二トークン】`
2. facebookアカウントのユーザーIDを取得する
<img width="1372" alt="68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3536373436342f34393735396138392d343865372d646639302d333838632d3331386530366462613134352e706e67.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567464/5243cb6c-62e5-f325-63cb-5581f524ac91.png">
3. URLを作成する
下記を組み合わせてブラウザで開いてください
  * `https://graph.facebook.com/v7.0/【facebookのユーザーID】/accounts`
  * `?access_token=【第二トークン】`
4. 完了
<img width="1373" alt="68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3536373436342f30373864333930372d376561652d353338342d373561622d6238626239383832393935622e706e67.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567464/e74ee3b3-f30f-68c9-a70e-caf118d67fa9.png">

## インスタグラムIDを取得する

1. グラフAPIエクスプローラーを開く
<img width="1374" alt="スクリーンショット 2020-07-13 10.25.52.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567464/ab5c02ae-cd4d-2dd9-686f-b0ef9a34eb0e.png">
2. インスタグラムIDを取得する
<img width="1372" alt="68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3536373436342f30663034373634362d616337312d356531312d653263392d6131333862386664653432362e706e67.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567464/befcc22e-57ba-eeba-edff-d8a1196e2a3a.png">
  1. "**アクセストークン**"に第三トークンをコピペする
  2. urlに"**me?fields=instagram_business_account**"を入力する
  3. "**[送信]**"ボタンをクリックする
  4. 完了

# API利用方法

## 手順

1. 下記を組み合わせてURLを作成して、ブラウザで開いてください
    * `https://graph.facebook.com/v7.0/【インスタグラムID】`
    * `?fields=id,followers_count,media_count,ig_id,media{caption,media_url,media_type,like_count,comments_count,timestamp,id}`
    * `&access_token=【第三トークン】`
<img width="1372" alt="68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3536373436342f38326539346636612d666535382d353632662d396262652d3131646564653265623033662e706e67.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567464/0586857a-8840-6c40-b665-f46583d49465.png">
2. [このサイト](http://dev.digitra.net/tools/jsonfairing.php)に結果を貼り付けてデコード変換してください
<img width="1373" alt="68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3536373436342f64326364623330302d343631632d393738642d393231642d3231656661613963323736612e706e67.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567464/d9595ed5-b7b4-c587-e806-70a0fcd3b1ef.png">

## 取得できるデータ一覧

https://developers.facebook.com/docs/instagram-api/reference

### Nodes

#### IG Comment - Represents an Instagram comment.

#### IG Hashtag - Represents an Instagram hashtag.

#### IG Media - 投稿内容の取得
* `caption`: 投稿内容
* `comments_count`: コメント数
* `id`: 投稿ID
* `ig_id`: インスタグラムID
* `is_comment_enabled`:
* `like_count`: いいね数
* `media_type`: メディア種別（画像・ビデオ・アルバムなど）
* `media_url`: メディアURL
* `permalink`: 投稿URL
* `shortcode`: 投稿URLの最後の項目（例：CCaS6ZIgmar）
* `thumbnail_url`:
* `timestamp`: 投稿日時（タイムゾーンがUTCで、日本時間に直すには+9時間します）
* `username`: インスタアカウントID

#### IG User - Represents an Instagram Business Account or Instagram Creator Account.

#### Page - Represents a Facebook Page.

### Root Edges

#### ig_hashtag_search - Gets the ID of an IG Hashtag.