ADVERTISEMENT

【Googleスプレッドシート】MetaのGraph APIでInstagramデータ取得!アクセストークン設定

【Googleスプレッドシート】MetaのGraph APIでInstagramデータ取得!アクセストークン設定
🛡️ 超解決

Instagramのビジネスアカウントをお使いで、フォロワー数や投稿のエンゲージメントデータを定期的にGoogleスプレッドシートに取り込みたいとお考えではないでしょうか。MetaのGraph APIを利用すれば、Instagramアカウントの様々なデータを取得できます。しかし、そのためにはアクセストークンの設定が必要で、初めての方には少し複雑に感じられるかもしれません。この記事では、アクセストークンを取得し、スプレッドシートでデータを取得するまでの手順を詳しく説明します。

【要点】Meta Graph APIでInstagramデータをスプレッドシートに取得するためのアクセストークン設定手順

  • Metaアプリの作成とGraph API Explorer: 開発者アカウントでアプリを作成し、Instagram Graph APIを有効にして短期トークンを取得します。
  • 長期アクセストークンへの変換: 短期トークンを60日間有効な長期トークンに交換して、スプレッドシートで利用できるようにします。
  • Apps Scriptによるデータ取得: スプレッドシートのApps Scriptでアクセストークンとエンドポイントを指定し、Instagramデータを自動取得するスクリプトを記述します。

ADVERTISEMENT

Instagram Graph APIの仕組みとアクセストークンの役割

Instagram Graph APIは、Metaが提供するAPIで、Instagramビジネスアカウントやクリエイターアカウントのデータにアクセスできます。このAPIを利用するには、アクセストークンと呼ばれる認証キーが必要です。アクセストークンは、アプリがユーザーに代わってAPIにアクセスすることを許可するもので、有効期限や権限(スコープ)が設定されています。短期トークンは1時間しか使えませんが、長期トークンに変換することで60日間利用可能になります。また、アプリは事前にMeta for Developersで登録し、Instagram Graph APIを有効にする必要があります。

アクセストークンを取得する手順

アクセストークンの取得は、Meta for Developersのアプリ作成から始まります。以下の手順で進めてください。

Metaアプリの作成とAPIの有効化

  1. Meta for Developersにアクセスする
    ブラウザでdevelopers.facebook.comを開き、Meta開発者アカウントでログインします。まだの場合はアカウントを作成してください。
  2. 新しいアプリを作成する
    「マイアプリ」から「アプリを作成」をクリックし、アプリ名と連絡先メールアドレスを入力します。「次へ」を押して作成を完了します。
  3. Instagram Graph APIを追加する
    作成したアプリのダッシュボードで「製品を追加」から「Instagram Graph API」を選択し、追加ボタンをクリックします。
  4. Instagramビジネスアカウントを確認する
    Instagramの設定からアカウントを「ビジネスアカウント」または「クリエイターアカウント」に切り替えます。Facebookページに接続する必要があるため、事前にFacebookページを作成しておいてください。

短期アクセストークンの取得

  1. Graph API Explorerを開く
    Meta for Developersのツールメニューから「Graph API Explorer」を開きます。
  2. アプリと権限を選択する
    右上の「Meta App」で作成したアプリを選択します。「User Token」が表示されているのを確認し、「Permissions」でinstagram_basic、instagram_manage_insights、pages_read_engagementなどの権限を追加します。
  3. アクセストークンを生成する
    「Get Token」をクリックし、Facebookアカウントでログインして権限を承認します。「Generated Access Token」の欄に表示された文字列が短期アクセストークンです。これは1時間で期限切れになるため、すぐに長期トークンに変換します。

長期アクセストークンへの変換

  1. アクセストークンデバッガーを使う
    Meta for Developersのツールから「Access Token Debugger」を開きます。「Access Token」の欄に短期トークンを貼り付け、「Debug」をクリックします。
  2. 長期トークンを取得する
    表示された情報の「Expires」が「About 1 hour」になっていることを確認したら、「Extend Access Token」ボタンをクリックします。新しい長期トークンが発行されます。このトークンの有効期限は60日です。文字列をコピーして安全な場所に保存してください。

スプレッドシートからInstagramデータを取得する手順

アクセストークンが準備できたら、GoogleスプレッドシートのApps Scriptを使ってデータを取得します。以下の手順でスクリプトを作成し、必要なデータをシートに書き込みます。

Apps Scriptエディタを開く

  1. スプレッドシートを準備する
    新しいGoogleスプレッドシートを作成し、シート名を「InstagramData」などに変更します。
  2. スクリプトエディタを起動する
    メニューから「拡張機能」→「Apps Script」を選択します。新しいタブでスクリプトエディタが開きます。

スクリプトを記述してデータを取得

  1. 関数を定義する
    エディタに以下のコードをコピーします。アクセストークンとInstagramアカウントIDは各自のものに置き換えてください。
    function getInstagramData() {
      var accessToken = 'YOUR_LONG_LIVED_ACCESS_TOKEN';
      var instagramId = 'YOUR_INSTAGRAM_ACCOUNT_ID';
      var url = 'https://graph.facebook.com/v19.0/' + instagramId + '/media?fields=id,caption,media_url,permalink,timestamp,like_count,comments_count&access_token=' + accessToken;
      var response = UrlFetchApp.fetch(url);
      var json = JSON.parse(response.getContentText());
      var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('InstagramData');
      var data = [['ID', 'Caption', 'Media URL', 'Permalink', 'Timestamp', 'Likes', 'Comments']];
      for (var i = 0; i < json.data.length; i++) {
        var item = json.data[i];
        data.push([item.id, item.caption || '', item.media_url || '', item.permalink || '', item.timestamp, item.like_count || 0, item.comments_count || 0]);
      }
      sheet.getRange(1, 1, data.length, data[0].length).setValues(data);
    }
  2. スクリプトを保存して実行する
    ファイルを保存し、関数「getInstagramData」を選択して再生ボタンをクリックします。初回は権限の承認が必要です。「権限を確認」から進み、自分のアカウントを許可してください。
  3. データがシートに表示されることを確認する
    実行後、シートに投稿のID、キャプション、メディアURL、パーマリンク、タイムスタンプ、いいね数、コメント数が書き込まれます。

トリガーを設定して定期更新

  1. トリガーを追加する
    Apps Scriptエディタの左メニューから「トリガー」を選び、「トリガーを追加」をクリックします。
  2. 関数と頻度を設定する
    「実行する関数」で「getInstagramData」を選択し、「時間ベースのトリガー」の種類を「日付ベースのタイマー」にし、時間を指定して保存します。例えば毎日午前9時に実行するように設定できます。

ADVERTISEMENT

アクセストークン設定でよくあるトラブルと注意点

アクセストークンの設定やスクリプトの実行で、いくつか問題が発生する場合があります。以下によくあるトラブルとその対処法を説明します。

アクセストークンの有効期限切れ

長期トークンでも60日で期限が切れます。期限が切れるとAPIリクエストがエラーになります。対処法として、トークンを定期的に更新するスクリプトを別途作成するか、手動で長期トークンを再取得してください。また、トークンの有効期限を確認するには、Access Token Debuggerで「Expires」の日付をチェックします。

必要な権限(スコープ)の不足

Graph APIにアクセスするには、適切な権限(スコープ)がトークンに付与されている必要があります。例えば、instagram_basic、instagram_manage_insights、pages_read_engagementなどです。権限が不足していると、特定のエンドポイントにアクセスできません。権限はトークン生成時に指定するか、後でGraph API Explorerでトークンを再発行して追加できます。

Instagramアカウントの種類に関する制限

Instagram Graph APIはビジネスアカウントまたはクリエイターアカウントでのみ利用できます。個人アカウントでは使用できません。アカウントの種類はInstagramアプリの設定で確認し、必要に応じて切り替えてください。また、Facebookページに接続されていないとデータ取得に失敗するため、事前に連携を確認しておきましょう。

アクセストークンの種類比較

種類 有効期間 取得方法 用途
短期アクセストークン 1時間 Graph API Explorerで直接生成 テストや一時的なアクセス
長期アクセストークン 60日 短期トークンをAccess Token Debuggerで変換 本番環境での定期的なデータ取得
ページアクセストークン 無期限(権限更新が必要) FacebookページのGraph APIから取得 Facebookページに関連するInstagramアカウントの操作

アクセストークンは適切な種類を選び、有効期限に注意して運用することが重要です。長期トークンを利用し、期限が近づいたら再取得するサイクルが推奨されます。

まとめ

この記事では、Meta Graph APIのアクセストークンを取得し、GoogleスプレッドシートのApps Scriptを利用してInstagramデータを自動取得する方法を解説しました。アクセストークンの有効期限や必要な権限に注意すれば、定期的なデータ収集が可能になります。次は、取得したデータをグラフで可視化する方法や、QUERY関数を使ってデータを絞り込む方法にも挑戦してみてください。スプレッドシートとAPIの連携を活用して、効率的なデータ分析を実現しましょう。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。