Instagram APIの始め方

# InstagramAPIとは
Instagramのアカウントから基本的なプロフィール情報、写真、動画などの投稿情報を取得することができるもの。
2024年12月4日にInstagram Basic Display APIが終了となったため、Instagramの個人アカウントからデータを取得することができなくなりました。
**APIを利用するにはプロアカウント(ビジネス・クリエイターアカウント)に切り替える必要あります。**

https://developers.facebook.com/products/instagram/apis/?locale=ja_JP

私はInstagram情報を自社のWebアプリで表示させるため活用しましたので、その手順をまとめます。
別用途の場合は手順が異なるかもしれませんので、詳しくはMetaのHomeをご確認ください。

## InstagarmAPIを始めるのに必要なステップ

1\. Facebookページを作る
2\. Metaアプリを作る
3\. Instagramアプリを設定する
4\. ビジネス認証を実施する
5\. アクセス認証を実施する
6\. アプリレビュー申請を実施する

※自身のInstagramカウントのみ用いるのであればNo.5,No.6は不要です
　不特定多数のInstagramアカウントで機能するアプリを作成する場合は認証やレビューが必要となります

 ### 1. Facebookページを作る
①InstagramAPIを管理するFacebookでログイン
②画面右上のアイコンから「全てのプロフィールを見る」をクリック
![202401240.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935258/8e89af74-2047-184e-11bb-b8d595969375.png)
③新しいプロフィールまたはページを作成をクリック
![202401241.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935258/c89f868d-7bb2-88af-e973-75b40b12a3fa.png)
④公開ページをクリック
![202401242.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935258/491db1c7-0d18-a1ef-6667-27bcbee4d542.png)
⑤ページ名やカテゴリなど必要な情報を求められるため、記載することでFacebookページを作成できます


 ### 2. Metaアプリを作成する
①サイトにアクセス
　https://developers.facebook.com/
②利用を開始するをクリック
③Facebook for Developersアカウントを作成
④メールアドレスを入力して「認証」をクリック
⑤開発者を選択して登録完了

 ### 3. Instagramアプリを設定する
 #### 基本設定
①サイトにアクセス
　https://developers.facebook.com/apps/?show_reminder=true
②アプリを作成をクリック
![evidence2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935258/e97ee54d-d6f6-9803-ae88-8ac9bdf5c2b6.png)

③必要情報を入力して次へをクリック
　アプリ名：WebページにてInstagram連携をする際に表記される名前です
　連絡先メールアドレス：Metaからアプリに対しての通知が行われる連絡先です

![evidence3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935258/341d3a29-68e5-c341-2317-487257f90ec4.png)

④ユースケースを追加
　利用用途に応じたユースケースを追加してください
　私の場合は不特定多数のInstagramアカウントの情報を取得する権限が必要だったため、その他 > Businessを選択
 ![evidence4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935258/12ebdd00-3895-dec7-e25b-de88cd57b670.png)
![evidence5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935258/4f3fc944-93cd-4f72-3a2d-62ac136f213d.png)


 ⑤最終チェックとビジネスポートフォリオを選択してアプリを作成をクリック
 　ビジネスポートフォリオ：**1.Facebookページを作る** で対応したページがあるはずなのでそちらを選択してください
![evidence6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935258/765c8180-72d4-b138-3f77-c61a193bfd75.png)

  ⑥作成したアプリを選択
  　→初回作成時は自動でページ遷移します
  ⑦アプリの設定 > ベーシックを選択
  ![evidence7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935258/bd2cc90f-bbd1-4a16-de7e-85366be91c8b.png)

  ⑧必要な設定項目を記載して変更を保存をクリック
  　プライバシーポリシーのURL：プライバシーポリシーが記載されているリンクを貼ってください
   カテゴリ：アプリのジャンルを選択してください
   アプリアイコン(1024 x 1024)：WebページにてInstagram連携をする際に表記されるアイコンです
   ※アプリレビューで必須となるので漏れないように記載してください         
![evidence8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935258/9a737544-1621-edb6-537d-c26def8c18cf.png)

   
  ⑨ダッシュボード > アプリに製品を追加から **Instagram** の設定をクリック
  ![evidence0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935258/f2d608fb-d795-0085-8c03-6114e3f2ab37.png)
  ⑪左のリストに**Instagram**が追加されます
  ![evidence1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935258/c1b140af-a5f7-93e3-e5f7-55f33be177cb.png)

 #### Instagramアプリ設定

 ①サイトにアクセス
　https://developers.facebook.com/apps/?show_reminder=true
 ②**3. Instagramアプリを設定する** で作成したアプリを選択
 ③Instagram > InstagramログインによるAPI設定をクリック
 ![evidence9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935258/148a54e5-dada-2df4-b5a6-5b3800a0fa4b.png)

 ④1. アクセストークンを生成する項目のアカウントを追加をクリック
 　instargramのログインが求められるため、テストで用いるInstagramユーザーでログインしてください
　 全ての認証/レビュー系が通るまではここに設定したアカウントのみ連携できるようになります
 ![evidence10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935258/258b9864-f7c8-03be-5b2d-38ddf9dab2b8.png)

 ⑤3. Instagramビジネスログインを設定するの設定するをクリック
 ⑥設定項目を入力
 　OAuthリダイレクトURL：認証後にリダイレクトするURL
  
 　後続記述の**InstagramAPIを利用するにあたって必要なサーバ設定**で触れます

  ![evidence11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935258/a083fb73-cbbf-39dd-45b0-83fe16110818.png)

  ![evidence12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935258/ba826f2f-1f8e-b5ff-dad4-50d0793ef8d4.png)



  ### 4. ビジネス認証を実施する
①サイトにアクセス
　https://developers.facebook.com/apps/?show_reminder=true
 ②**3. Instagramアプリを設定する** で作成したアプリを選択
 ③アプリの設定 > ベーシック > ビジネス認証項目の認証を開始をクリック
 ![evidence13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935258/db34901f-6891-5930-59c9-e5bd458b924f.png)
 ④ビジネスポートフォリオを選択して認証を開始
 　認証はビジネスの管理者しか実行できません
  ⑤国やビジネスの詳細を問われますので記載してください
  　詳細は割愛します
   ⑥申請後、認証完了するまでやり取りを続ける
   　内容によっては記載の詳細を問われる質問がアプリのアラート > 受信箱に数日以内に届きます
    質問内容に沿って回答して承認を終わらせてください
![evidence14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935258/7b6f355a-33cf-1349-36da-4affc98c5f80.png)




###  5.アクセス認証を実施する
ビジネス認証と流れはほぼ同じです
①サイトにアクセス
　https://developers.facebook.com/apps/?show_reminder=true
 ②**3. Instagramアプリを設定する** で作成したアプリを選択
 ③アプリの設定 > ベーシック > アクセス認証項目の認証を開始をクリック 
　内容はビジネス認証と似ています
 　Metaとやり取りしつつ認証を完了してください

　ビジネス認証が承認されていないと進められません
![evidence15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935258/7fefbc0c-5873-7a5b-4f5b-7c98e8c0bc2e.png)



### 6. アプリレビュー申請を実施する
前提：
手元で動きが検証できる環境が準備できていること
　→Meta社がレビューにあたり実際に触れる環境を用意する必要があります
ビジネス認証とアクセス認証と並走して申請は可能でしたので同時に進めると時短になります

①サイトにアクセス
　https://developers.facebook.com/apps/?show_reminder=true
 ②**3. Instagramアプリを設定する** で作成したアプリを選択
 ③Instagram > InstagramログインによるAPI設定をクリック
 ![evidence16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935258/ba805cdd-81ba-45bd-fb3d-0b58cee06135.png)

 ④4. アプリレビューを完了するからアプリレビューへ移動を押下
 ![evidence17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935258/9e3a0f1e-95b5-3dcc-f879-c2bb3cce8aab.png)

 ⑤Continue > アクセス許可のためのアドバンスアクセスをリクエストで必要な権限を選択
 　ログインしたInstagramユーザーの情報(プロフィールや投稿)を用いるのであれば**instagram_business_basic**のみで十分です
  権限の用途を確認して選択してください [参照](https://developers.facebook.com/docs/permissions/)
  ちなみにinstagram_business_manage_messagesが必須で入ってますが後で消せます
  ![evidence18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935258/e17f0957-2b6d-0d06-28af-05fce6631c27.png)

⑥アプリレビューへ移動をクリック
⑦アプリレビューのリクエストの編集をクリック
![evidence19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935258/2eaee8b7-cd7a-7a29-24bb-ac7c415c34a3.png)

⑧指示に従って権限をリクエストしている理由を入力してください
⑨申請画面が開くので回答してレビューを完了する
　こちらも一度で通ることの方が少ないと思います
　アラート > 受信箱に送られてきた指摘を確認しつつ進めてください

 
## ※アプリレビューの注意事項

* 申請は英語で回答するのが無難です
    * 筆者は下記を記載することで申請が通りました
        * そのプロダクトは何をしているものなのか
        * 申請した権限はなぜ必要なのか
        * どのようなMetaデータを扱っているのか
        * 実際にInstagramログインを行い連携を行っていかがわかる動画
* レビュー者は技術者ではないようなので曖昧な表現は避けましょう
* テストユーザーはこちらで準備してIDとパスワードを共有しましょう
    * アカウント情報を書かないでと書いてありますが、レビュー通るまではテストユーザーしか使えないのでどうしようもありません
* 困ったときは[ダイレクトサポート](https://business.facebook.com/direct-support/?business_id=1132465307529404)を活用しましょう
    * 何故レビューが棄却されたかわからないときなどのサポート先です
    * 大体1日か2日後には返事をくれます
    * アプリレビュー周りかデータ保護評価周り以外のことはサポート外
        * ビジネス認証やアクセス認証のことは質問してもサポート外としか言われません
  


 ## InstagramAPIを利用するにあたって必要なサーバ設定

 * APIを実行するあたって必要なMetaアプリ情報
     * InstagramアプリID
     * Instagram app secret
         * どちらもInstagram > InstagramログインによるAPI設定に記載されてます
     * リダイレクトURL
         * コードに合わせてアプリ側の設定を変更する
 * APIの使い方自体は公式から出ているのでここでは省きます
     * [公式のAPI利用方法](https://developers.facebook.com/docs/instagram-platform/instagram-api-with-instagram-login/)