Pathee engineering blog

世界をしなやかに変えるエンジニアたちのブログ

Instagram Graph API を使ってみた

Patheeエンジニアの @mikan3rd です!

今やリア充御用達SNSの代表格となったInstagram

私自身は年に数回しか投稿してません・・・が、投稿だけでなくストーリーズを日常的に使っている人も多く、またインスタグラマーと呼ばれる人々は企業のマーケティングの観点からも注目されています。

エンジニアとしても「Instagrambot作れないかな〜」とか思ってる人もいるんじゃないでしょうか。

しかし、TwitterAPIを使ったサービスは個人から企業まで幅広くあるのにも関わらず、InstagramAPIを使った具体的な事例はあんまりないですよね?

そこで、今回は「InstagramAPIを使ってみたい!」という人向けに解説してみようと思います。

Instagram API とは?

  • 公式:https://www.instagram.com/developer/
  • Instagram社が提供していた旧APIのこと
  • Instagramログイン、投稿の検索、いいね!をつけるなど、TwitterAPIみたいなことができました
  • 公式トップに書いてあるように現在は段階的に機能を廃止しており、2020年には全て廃止予定です
  • よって、今から使うべきではありません

Instagram Graph 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

  • 2018年10月31日に新しく追加された、ハッシュタグで投稿を検索できるAPI
  • 新着順もしくは人気順で取得できる
  • 1週間で30種類のハッシュタグまで、という制限あり

Webhooks

  • コメント、メンション、ストーリーズの掲載終了、をトリガーにしたwebhookを設定できます

Patheeではどう使ってる?

Patheeパートナー(https://pathee.com/lp/ )という店舗のデジタルマーケティングを支援するSaaSを開発しており、例えば次のような機能を提供しています

Instagramの投稿をハッシュタグで絞り込んでPathee Mediaに掲載できる機能

partner.pathee.com_bizspots_1_pathee_edit_sns(Laptop with HiDPI screen).png

▼ 埋め込みコードを発行して店舗のウェブサイトなどにInstagramを表示できる機能

partner.pathee.com_bizspots_1_pathee_edit_sns(Laptop with HiDPI screen) (1).png

Instagramの統計データをより見やすく表示する機能

partner.pathee.com_analytics_1_instagram_media(Laptop with HiDPI screen).png

▼ 次のようにアプリレビューの審査にも合格しています

developers.facebook.com_apps_149709765730057_app-review_my-permissions__business_id=680583432074143(Laptop with MDPI screen) (1).png

どうやってAPIを利用するの?

上記のAPIを利用するためには様々な準備が必要となります

ビジネスアカウントを用意する

Facebookアプリを作成する

Facebookログインを実装する

無期限ページアクセストークンを取得する

ビジネスアカウントのIDを取得する

アプリレビューの審査に合格する

  • 上記で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を使ったサービスが意外と少ない理由もここにあると思います。 しかし、まだまだ使ってる人が少ないからこそ価値の生み出せるコンテンツとも言えるので、今後のサービスにもっと活かしていきたいと思ってます。 では、また次回!