私自身は年に数回しか投稿してません・・・が、投稿だけでなくストーリーズを日常的に使っている人も多く、またインスタグラマーと呼ばれる人々は企業のマーケティングの観点からも注目されています。
エンジニアとしても「Instagramのbot作れないかな〜」とか思ってる人もいるんじゃないでしょうか。
しかし、TwitterのAPIを使ったサービスは個人から企業まで幅広くあるのにも関わらず、InstagramのAPIを使った具体的な事例はあんまりないですよね?
そこで、今回は「InstagramのAPIを使ってみたい!」という人向けに解説してみようと思います。
Instagram API とは?
- 公式:https://www.instagram.com/developer/
- Instagram社が提供していた旧APIのこと
- Instagramログイン、投稿の検索、いいね!をつけるなど、TwitterAPIみたいなことができました
- 公式トップに書いてあるように現在は段階的に機能を廃止しており、2020年には全て廃止予定です
- よって、今から使うべきではありません
Instagram Graph API とは?
- 公式:https://developers.facebook.com/docs/instagram-api/
- Facebook社が提供している新APIのこと
- 2018年1月31日にFacebook Graph APIの拡張としてリリースされました
- ただし、旧APIとは違ってビジネスアカウント向けの一部の機能のみとなっています
できないこと
- Instagramログイン
- キーワードで投稿・ユーザーを検索
- 投稿の位置情報の取得・検索
- ストーリーズの取得・検索
- 投稿の追加・編集・削除
- いいね!の追加・削除
- フォローの取得・追加・削除
- フォロワーの取得
・・・といったように、旧APIでできたことがだいたいできなくなっています
できること
Business Discovery API
- 他のビジネスアカウントの情報(フォロー数・フォロワー数・投稿内容など)を取得するAPI
- 相手がビジネスアカウントでない場合は取得できません
- また、検索はできないので相手のビジネスアカウントのユーザーネームが事前に必要です
- ちなみにユーザーネームは変更可能なので変わった場合は使えなくなります
Content Publishing API
- 投稿を行うAPI。ユーザーをタグ付けしたり、位置情報を追加したりもできます
- ただし、現状ではFacebook Marketing Partners もしくは Instagram Partnersに認定されていないと使えません
Comment Moderation API
- 投稿のコメントを取得したりリプライを返したりするAPI
- コメントの表示・非表示の切り替えもできます
- ただし、コメントした人の情報はユーザーネーム以外は分かりません
Insights API
- ユーザーや投稿の統計データを取得するAPI
- ユーザーの場合は、フォロワーの属性(国、都市、性別など)、プロフィールの電話番号やウェブサイトのクリック数など
- 投稿の場合は、インプレッション数(閲覧数)、リーチ数(ユニーク閲覧ユーザー数)、エンゲージメント数(いいね!やコメントなどの数の合計)、など
- ストーリーズの統計データも取得できる
Mentions API
- 自分のビジネスアカウントがタグ付けされたりメンションされている投稿やコメントを取得できるAPI
- ただし、他人の投稿やコメントの場合は、そこにコメントを返したりすることはできません
Hashtag Search API
Webhooks
- コメント、メンション、ストーリーズの掲載終了、をトリガーにしたwebhookを設定できます
Patheeではどう使ってる?
Patheeパートナー(https://pathee.com/lp/ )という店舗のデジタルマーケティングを支援するSaaSを開発しており、例えば次のような機能を提供しています
▼ Instagramの投稿をハッシュタグで絞り込んでPathee Mediaに掲載できる機能
▼ 埋め込みコードを発行して店舗のウェブサイトなどにInstagramを表示できる機能
▼ Instagramの統計データをより見やすく表示する機能
▼ 次のようにアプリレビューの審査にも合格しています
どうやってAPIを利用するの?
上記のAPIを利用するためには様々な準備が必要となります
ビジネスアカウントを用意する
- Instagram Graph APIはビジネスアカウントのみで利用可能です。
- また、一般アカウントからビジネスアカウントに切り替えるためにはFacebookページも必要となります。
- 公式:https://business.instagram.com/getting-started
Facebookアプリを作成する
- Facebook Developersに登録し、Facebookアプリを作成する必要があります
- Facebookアプリを作成すると、アプリIDとアプリシークレットが発行されます
- 公式:https://developers.facebook.com
Facebookログインを実装する
- APIを利用するためにはアクセストークンが必要です。
- Facebookログインを行うことで、アクセストークンを取得できます
- Facebookログインの実装方法はWeb/iOS/Androidなどプラットフォームによって変わりますが、基本的にはFacebookのSDKを利用できるはずです
- 公式:https://developers.facebook.com/docs/facebook-login/web
- Facebookログインのscopeには今回使用するAPIのアクセス許可を渡す必要があります。
- 公式:https://developers.facebook.com/docs/facebook-login/permissions
- また、あらかじめFacebook DevelopersでリダイレクトURLを設定しておく必要があります
- これで取得できるトークンを「ユーザーアクセストークン」と呼びます
無期限ページアクセストークンを取得する
- 先ほどのFacebookログインで取得したユーザーアクセストークンは数時間で有効期限が切れてしまいます
- ユーザーアクセストークンは長期ユーザーアクセストークンに変換できますが、それでも60日で有効期限が切れてしまいます
- 長期ユーザーアクセストークンを無期限ページアクセストークンに変換することで、アクセストークンを無期限で使用できるようになります
- 公式:https://developers.facebook.com/docs/facebook-login/access-tokens/refreshing
ビジネスアカウントのIDを取得する
- 上記のアクセストークンを使用し、Facebookページに連携したInstagramビジネスアカウントを取得してみましょう
- まずはFacebookページ一覧取得APIを叩いて目当てのFacebookページのIDを取得し、そのFacebookページIDでInstagramビジネスアカウント取得APIを叩くことができます
- このビジネスアカウントIDを使うことで、上記に挙げたAPIを使用してInstagramの投稿一覧を取得したりすることができます。
- 公式:https://developers.facebook.com/docs/instagram-api/getting-started#4--get-the-user-s-pages
アプリレビューの審査に合格する
- 上記でAPIの動作確認はできましたが、このままだとFacebookログイン時に警告が表示されてしまいます
- アプリレビューの審査に合格することで正式にAPIを使用することができるようになります
- Instagram Graph APIのアプリレビューには「ビジネス認証」と「製品レビュー」が必要です
- ビジネス認証ではサービスを提供する企業を証明するための公的な書類を提出する必要があります
- 製品レビューではサービスの使い方の動画と、実際に提供するサービスのURLなどを送って動作確認をしてもらい、問題がないか審査してもらう必要があります
- 公式:https://developers.facebook.com/docs/apps/review#business-verification
レート制限を回避する
- APIを叩けるのは1ユーザーにつき1時間200回までというレート制限があります
- 適度にキャッシュを保存するなどして、このレート制限を回避する施策を打つ必要があります
まとめ
「Instagram Graph API、思ってたのと違う」「使いづらい」と感じた人も多いんじゃないでしょうか。 Instagramは流行っているのにInstagram Graph APIを使ったサービスが意外と少ない理由もここにあると思います。 しかし、まだまだ使ってる人が少ないからこそ価値の生み出せるコンテンツとも言えるので、今後のサービスにもっと活かしていきたいと思ってます。 では、また次回!