IG Harnessはじめに·

Instagram アカウント紐付け・アクセストークン取得(IG Harness セットアップ編 #3)

Shudesuのプロフィール画像

Shudesu

Author

Instagram アカウント紐付け・アクセストークン取得(IG Harness セットアップ編 #3)

Meta アプリを作って Live にしたら、次に IG ビジネスアカウントを紐付けてアクセストークンを取得する。「App Secret」と「Access Token」を混同しがちなので、まずその違いから。

App Secret と Access Token の違い

項目App SecretAccess Token
用途Webhook 署名検証、OAuth フローGraph API 呼び出し
1つ(アプリごと)IG アカウントごとに1つ
有効期限無期限(任意のタイミングで再生成可能)60日(long-lived token)
場所Dashboard トップ「基本」Instagram API setup 画面
保管先Worker の IG_APP_SECRET secretWorker の IG_ACCESS_TOKEN secret

実際にやると、Dashboard で最初に目に入るのが App Secret(32桁の16進数)なので「これがトークン!」と勘違いしてコピペしがち。Access Token は別の画面の「トークンを生成」ボタンを押して取得する別物。

App Secret の例: <APP_SECRET_HEX>(32桁 16進数) Access Token の例: <LONG_LIVED_ACCESS_TOKEN>(200〜300文字、IGAA... で始まる)

長さが全然違うので、混同したら即気付けるが、どっちが何かは知っておく必要がある。

ステップ1: Instagram アカウントをアプリに追加

左メニュー「Instagram」→「API setup with Instagram business login」

画面に「Instagram アカウント」セクションがあり、「Instagramアカウントを追加」ボタン。

ここで2通りの追加方法:

方法A: テスターロール招待(Development モード時)

自分の IG ビジネスアカウントをテスターとして招待。

  1. 「Instagram テスターの役割を割り当て」
  2. Instagram ユーザー名を入力(例: your-ig-account
  3. 招待送信

方法B: OAuth ログイン(Live モード時)

アプリの埋め込み URL を開いて OAuth フローで連携。これは主にエンドユーザーの IG アカウントを SaaS に連携させる場合に使う。

自己利用なら方法A で OK

ステップ2: IG アプリ側で招待を承認

招待した IG アカウントの Instagram アプリ(スマホ)で承認作業:

  1. Instagram アプリを開く
  2. 「プロフィール」→「設定とアクティビティ」
  3. 「ウェブサイトのアクセス許可」
  4. 「テスター招待」に Meta Developer アプリ名が表示されている
  5. 「承認」ボタン

承認しないとアカウント追加が完了しない。通知が埋もれがちなので、招待後スマホでチェックする。

実例: test-accountyour-ig-account の2つの IG アカウントを紐付け。スマホで両方それぞれログインし直して承認する必要があった。

ステップ3: アクセストークン生成

アプリダッシュボードの Instagram API setup 画面、ステップ2のテーブルにアカウント名が表示される:

InstagramアカウントトークンWebhook サブスクリプション
test-account「トークンを生成」 ボタンオフ
your-ig-account「トークンを生成」 ボタンオン

「トークンを生成」ボタンを押すと、ポップアップで長いアクセストークン(200〜300 文字)が表示される。この画面を閉じると再表示できないので必ずコピーする。

コピーし忘れても、同じボタンで何度でも再発行可能。ただし再発行すると古いトークンは失効する点に注意。他のサービスで使っていたら影響する。

ステップ4: Worker にトークンを投入

printf '%s' "<LONG_LIVED_ACCESS_TOKEN>" | wrangler secret put IG_ACCESS_TOKEN

必ず printf '%s' を使うecho だと末尾に改行が入って URL の一部になり、API 呼び出しで妙なエラーになる(詳細は wrangler secret の改行罠)。

合わせて Instagram-Scoped User ID も投入:

printf '%s' "<IG_USER_ID>" | wrangler secret put IG_USER_ID

User ID は Dashboard 画面(アカウント名の下に表示)または以下で取得:

curl "https://graph.instagram.com/v21.0/me?fields=id,username&access_token=$TOKEN"

ステップ5: 60日の寿命と自動延長

Meta が発行するトークンは long-lived token で有効期限60日。延長するには /refresh_access_token エンドポイントを叩く:

curl "https://graph.instagram.com/refresh_access_token?grant_type=ig_refresh_token&access_token=<current>"

制約:

  • トークン発行から24時間経過していないと refresh 不可(Meta がエラーを返す)
  • refresh すると expires_in(60日 = 5184000 秒)付きで新トークンが返る
  • 以降は60日以内に再度 refresh すれば延長が回り続ける

IG Harness では Cron (5分毎) で自動 refresh 実装済み(src/lib/ig-token.ts)。手動運用ならカレンダーに60日置きのリマインダーを設定する必要あり。

ステップ6: 複数アカウント管理

1つの Meta アプリに複数の IG ビジネスアカウントを紐付けられる。各アカウントに対して独立したアクセストークンが発行される。

IG Harness の現行実装はシングルテナントenv.IG_ACCESS_TOKENenv.IG_USER_ID 一組のみ)のため、複数アカウント運用するには:

  • オプション1: Worker を複数 deploy(ig-harness-a, ig-harness-b ...)
  • オプション2: コードを書き換えて accounts テーブル + トークンを D1 で管理

ManyChat のような SaaS 化を目指すならオプション2が必要。

チェックリスト

  • IG アカウントをテスターとして追加
  • IG アプリ内で招待を承認
  • 「トークンを生成」でアクセストークン取得(忘れずコピー)
  • printfIG_ACCESS_TOKENIG_USER_ID を Worker に投入
  • curl /me?access_token=... で正しい username が返るか確認

次は Webhook 設定完全ガイド へ。

#setup#token#instagram-business#tester#access-token
この記事が役に立ったら投票してください

コメント (0)

コメントするにはログインしてください。