Open8

InstagramのAPIを使えるようになるまで

こなんこなん

Instagramプラットフォームなるものは4種類ある

それぞれ用途がある

■ Instagramログインを使ったInstagram API
・ メッセージング - 顧客やInstagramアカウントに興味を持っている人とメッセージを送受信できます。
・ コメントモデレーション - 自社メディアへのコメントを管理し、返信する。
・ コンテンツ公開 - 自社メディアを取得し、公開する
・ メンション - 他のインスタグラムユーザーから@を付けられたメディアを特定する。
■ Facebookログインを使ったInstagram API
・ 公開された写真、動画、ストーリーズの取得と管理
・ ほかのInstagramビジネスアカウントおよびクリエイターアカウントに関する基本データの取得
・ コメントとそれに対する返信のモデレーション
・ メディアおよびプロフィールのインタラクションの測定
・ ハッシュタグの付いたメディアの発見
・ @メンションの発見
・ コンテンツパブリッシング
■ Instagram基本表示API
・ InstagramユーザーからInstagramユーザーアクセストークンおよびアクセス許可を取得する
・ Instagramユーザーのプロフィールを取得する
・ Instagramユーザーの画像、動画、アルバムを取得する

それぞれ制限がある

■ Instagramログインを使ったInstagram API
・ このAPIセットアップでは、広告、インサイト、タグ付けにアクセスできません。
■ Facebookログインを使ったInstagram API
・ Facebookログインを使ったInstagram APIでは、Instagram消費者アカウント(ビジネスでもクリエイターでもないInstagramアカウント)にアクセスすることはできません。消費者ユーザー用のアプリを構築している場合は、代わりにInstagram基本表示APIを使用してください。
・ コンテンツパブリッシングは、ビジネスアカウントのみが利用できるストーリーズを除き、すべてのInstagramプロアカウントが利用できます。
・ 結果の並べ替えはサポートされていません
・ カーソルベースのページ割りはすべてのエンドポイントでサポートされていますが、時間ベースのページ割りをサポートするエンドポイントはユーザーインサイトエッジだけです
■ Instagram基本表示API
・ 認証 — Instagram基本表示は認証ソリューションではありません。APIが返すデータを使用して、アプリユーザーを認証したり、アプリユーザーをアプリにログインさせたりすることはできません。認証ソリューションが必要な場合は、代わりにFacebookログインを使用するようおすすめします。
・ アプリタイプ — ビジネスアプリとして指定されたアプリはサポートされません。アプリがビジネスアプリである場合は、代わりにInstagramグラフAPIを使用するか、ビジネスアプリでない新しいアプリを作成してください。
・ レガシーID — InstagramレガシーAPIユーザーIDはサポートされません。
・ サポートされないメディア — IGTV、ストーリーズ、リール、コメントはサポートされません。
・ 宣伝投稿 — Instagramメディアが含まれている宣伝投稿はサポートされません。
・ インサイト — インサイトはサポートされません。

方針

メディアおよびプロフィールのインタラクションの測定

を行いたいため 「Facebookログインを使ったInstagram API」 を採用する!!

こなんこなん

Getting Started

目次

下記のような流れで始められるようになっている
3まで行けば基本的な準備が完了

1. Facebookログインを設定する
2. Facebookログインを実装する
3. ユーザーアクセストークンを取得する
  ~ ここまでが基本的な準備 ~
4. ユーザーのページを取得する
5. ページのInstagramビジネスアカウントを取得する
6. Instagramビジネスアカウントのメディアオブジェクトを取得する

1. Facebookログインを設定する

  • 適宜アプリに製品(PRODUCTS)を追加できるためここでは 「Instagram」 を追加する

2. Facebookログインを実装する

3. ユーザーアクセストークンを取得する

こなんこなん
※データアクセスの有効期限
データアクセスの有効期限は、利用者が最後にアクティブであった時点を基準として90日間です。この90日間の有効期限を経過しても、利用者は引き続きアプリにアクセスできます(つまり、認証が維持されています)。
しかし、アプリ側から利用者のデータにアクセスすることはできなくなります。データアクセスを再び獲得するには、アプリのアクセス許可を再度利用者に承認してもらう必要があります。

つまりアクティブなアカウントを対象にしていれば問題ない
https://developers.facebook.com/docs/facebook-login/auth-vs-data#data-access-expiration

こなんこなん

■ アプリユーザー

  • ロールユーザー :アプリそのものに役割を持つユーザー
  • 非ロールユーザー:持たないユーザー

■ アプリモード

開発モード
  • 役割があるユーザーのみがアクセス許可をリクエストできる
  • リクエストできるのは標準または詳細アクセスレベルのアクセス許可のみ (消費者アプリのみに適用)
  • 機能は役割があるユーザーのみに対してアクティブ
  • アクティブになるのは標準または詳細アクセスレベルの機能のみ(消費者アプリのみ)
ライブモード
  • すべてのユーザーがアクセス許可をリクエストできる
  • リクエストできるのは、アプリレビューを通じて承認されたアクセス許可のみ
  • アプリユーザーに対してアクティブになるのは、アプリレビューを通じて承認された機能のみ

方針

  • 個人ツールであるため 開発モード で対応
  • 対象のInstagramアカウントに役割(Instagramテスター)を付与すればアクセス可能
こなんこなん

自身以外のInstagramアカウントのユーザーアクセストークンを得るには??

グラフAPIエクスプローラーでアクセストークンを発行してみる

この方法では自身のFacebookアカウントに紐づくInstagramアカウントしか
「無期限」のアクセストークンを得ることができない

やはりFacebookログイン部分を実装した上でアクセストークンを取得する必要がある
※「無期限」のアクセストークンは取得不可