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の有効化
- Meta for Developersにアクセスする
ブラウザでdevelopers.facebook.comを開き、Meta開発者アカウントでログインします。まだの場合はアカウントを作成してください。 - 新しいアプリを作成する
「マイアプリ」から「アプリを作成」をクリックし、アプリ名と連絡先メールアドレスを入力します。「次へ」を押して作成を完了します。 - Instagram Graph APIを追加する
作成したアプリのダッシュボードで「製品を追加」から「Instagram Graph API」を選択し、追加ボタンをクリックします。 - Instagramビジネスアカウントを確認する
Instagramの設定からアカウントを「ビジネスアカウント」または「クリエイターアカウント」に切り替えます。Facebookページに接続する必要があるため、事前にFacebookページを作成しておいてください。
短期アクセストークンの取得
- Graph API Explorerを開く
Meta for Developersのツールメニューから「Graph API Explorer」を開きます。 - アプリと権限を選択する
右上の「Meta App」で作成したアプリを選択します。「User Token」が表示されているのを確認し、「Permissions」でinstagram_basic、instagram_manage_insights、pages_read_engagementなどの権限を追加します。 - アクセストークンを生成する
「Get Token」をクリックし、Facebookアカウントでログインして権限を承認します。「Generated Access Token」の欄に表示された文字列が短期アクセストークンです。これは1時間で期限切れになるため、すぐに長期トークンに変換します。
長期アクセストークンへの変換
- アクセストークンデバッガーを使う
Meta for Developersのツールから「Access Token Debugger」を開きます。「Access Token」の欄に短期トークンを貼り付け、「Debug」をクリックします。 - 長期トークンを取得する
表示された情報の「Expires」が「About 1 hour」になっていることを確認したら、「Extend Access Token」ボタンをクリックします。新しい長期トークンが発行されます。このトークンの有効期限は60日です。文字列をコピーして安全な場所に保存してください。
スプレッドシートからInstagramデータを取得する手順
アクセストークンが準備できたら、GoogleスプレッドシートのApps Scriptを使ってデータを取得します。以下の手順でスクリプトを作成し、必要なデータをシートに書き込みます。
Apps Scriptエディタを開く
- スプレッドシートを準備する
新しいGoogleスプレッドシートを作成し、シート名を「InstagramData」などに変更します。 - スクリプトエディタを起動する
メニューから「拡張機能」→「Apps Script」を選択します。新しいタブでスクリプトエディタが開きます。
スクリプトを記述してデータを取得
- 関数を定義する
エディタに以下のコードをコピーします。アクセストークンと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); } - スクリプトを保存して実行する
ファイルを保存し、関数「getInstagramData」を選択して再生ボタンをクリックします。初回は権限の承認が必要です。「権限を確認」から進み、自分のアカウントを許可してください。 - データがシートに表示されることを確認する
実行後、シートに投稿のID、キャプション、メディアURL、パーマリンク、タイムスタンプ、いいね数、コメント数が書き込まれます。
トリガーを設定して定期更新
- トリガーを追加する
Apps Scriptエディタの左メニューから「トリガー」を選び、「トリガーを追加」をクリックします。 - 関数と頻度を設定する
「実行する関数」で「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
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
