【完全版】Instagram自動投稿を非エンジニアがゼロから作る手順|59歳・一度挫折して完走した全記録

「Instagramの投稿を、プログラムで自動化したい」

そう思って調べ始めたものの、Metaの開発者ページで手が止まっていませんか。

  • アプリは作った。でも「アクセストークンを生成する」から先に進めない
  • 「役割タブでInstagramテスターの役割を割り当ててください」と言われるが、その役割タブが見つからない
  • Instagramアプリで招待を承認しようとしたが、そんな画面はどこにもない
  • 検索して出てくる記事は、どれも画面構成が今と違う

全部、私が通った道です。そして私は、そこで止まりました。数か月間、放置しました。

後日ゼロから再開したら、実質半日で完走しました。

止まっていた期間の長さと、残っていた作業量は、まったく関係ありませんでした。分からなかったのは「難しかったから」ではなく、どこを見ればいいか知らなかっただけです。

この記事は、その「どこを見るか」だけを集めたものです。トークンの取得から実際の投稿成功まで、この記事だけで完結します。


  1. 最初に正直に書いておくこと
  2. この記事で扱う環境
    1. 準備するもの
  3. パソコンとiPhone、どちらを使うのか
  4. 全体の地図
  5. STEP 1:Meta開発者アプリを作る
  6. STEP 2:ユースケースを設定する
    1. ここで時間を溶かさないために
  7. STEP 3:Instagramテスターの登録
    1. つまずきポイント①:「テスターへの招待」がiPhoneのアプリに出てこない
    2. 3-1. 招待を送る(パソコン)
      1. 迷いやすい点:「アプリの役割」はどこにあるか
    3. 3-2. 招待を承認する
      1. 正しい手順
      2. 補足:Threadsの招待は承認できなくても問題ありません
  8. STEP 4:アクセストークンを発行する
    1. つまずきポイント②:トークンは一度しか表示されません
    2. 保存の例
  9. STEP 5:トークンが使えるか確認する
    1. 成功した場合
    2. 失敗した場合
    3. つまずきポイント③:かっこを一緒に貼り付けてしまう
  10. STEP 6:投稿する画像を用意する
    1. つまずきポイント④:iPhoneで撮った写真は、そのまま投稿できません
    2. では、どの画像を使うのか
    3. BASEの商品画像URLを取得する手順
  11. STEP 7:プログラムを書く
    1. 「キャプション」とは
    2. プログラム全文
    3. 書き換えるのは上の3行とキャプションだけ
    4. なぜ2段階に分かれているのか
    5. キャプションで引用符を3つ重ねる理由
  12. STEP 8:実行する
    1. 8-1. ターミナルを開く
    2. つまずきポイント⑤:ターミナルでは右クリックが「貼り付け」になる
    3. 8-2. ファイルのある場所に移動する
    4. つまずきポイント⑥:「デスクトップ」がOneDriveの中にある
      1. ファイルの本当の場所を確認する方法
      2. 移動する
    5. 8-3. 必要な部品をインストールする
    6. 8-4. 実行
      1. 成功したときの表示
  13. トラブル早見表
  14. トークンの期限について
    1. 何が起きるか
    2. 期限は「60日」です
    3. 今すぐやっておくこと
    4. 期限が切れたときの対処
  15. この後どこへ進めるか
    1. 段階1:複数商品に対応させる
    2. 段階2:投稿内容を一覧で管理する
    3. 段階3:時間を決めて自動実行する
      1. なぜいきなりVPSを契約しないほうがいいか
  16. 最後に
  17. 用語のおさらい

最初に正直に書いておくこと

私は59歳です。本業は別にあり、副業でコーヒー豆のネットショップをやっています。プログラミングは仕事ではありません。学んだこともありません。

年齢を書いたのは、自慢でも卑下でもありません。「若い人向けの話でしょう」と思って読むのをやめる人がいるといけないからです。59歳でもできました。

そしてもうひとつ。私が半日で完走できた最大の理由は、詰まるたびにパソコンの画面をiPhoneで撮影して、AIチャットに見せて聞いたことです。独力ではありません。

なぜこれが効くのか。文字で「〇〇という画面が出ません」と説明しても、相手にはこちらの画面が見えていないので伝わりません。でも画面そのものを見せると、「その左端にある家のアイコンを押してください」というレベルで教えてもらえます。用語を知らなくても、指させば済むのです。

実際、私が一番長く詰まった「アプリの役割はどこにあるのか」も、画面を見せた瞬間に「その左メニューには無い、一度トップに戻る必要がある」と分かりました。

ただし、聞ける相手がいても、どこで詰まるかは変わりません。この記事に書いてある6つのつまずきは、AIに聞きながらでも発生します。だからこそ、先に知っておく価値があります。

注意:アクセストークンが写った画面は、扱いに注意してください。トークンは、あなたのInstagramアカウントを操作できる合鍵です。他人に渡ると勝手に投稿される可能性があります。自分用メモとして保存するのは問題ありませんが、ブログやSNSに載せるときは必ず塗りつぶしてください。


この記事で扱う環境

私が実際にやった環境です。ここに書いていない環境は試していないので、この記事では扱いません。

  • パソコン:Windows
  • スマートフォン:iPhone
  • ネットショップ:BASE
  • コードを書くソフト:Cursor(VS Codeでも同じです)

準備するもの

  • Instagramのビジネスアカウント(個人アカウントは不可。無料で切り替えられます)
  • Facebookアカウント(Meta開発者登録に必要)
  • Windowsパソコン
  • Python(入っていなければ公式サイトからインストール)
  • コードを書くソフト(Cursor、VS Code、メモ帳でも可)

パソコンとiPhone、どちらを使うのか

これが意外と大事なので、先に整理しておきます。私は最初「スマホでできることはスマホで」と考えて進めて、それが原因で一番長い時間を無駄にしました。

作業 使うもの
Meta開発者ページの操作(アプリ作成・トークン発行) パソコン(スマホでは画面が狭すぎてメニューにたどり着けない)
Instagramのテスター招待を承認する パソコンのブラウザ(iPhoneアプリでは承認画面が出ない)
商品画像のURLを取得する パソコン(右クリックが必要)
プログラムを書いて実行する パソコン
投稿できたか確認する iPhoneのInstagramアプリでOK

結論として、この作業はほぼ全部パソコンでやります。iPhoneは最後の確認に使うだけです。

なぜこれを最初に書いたかというと、「スマホのInstagramアプリで承認するもの」と思い込むと、存在しないものを延々と探すことになるからです。私がそうでした。


全体の地図

先に全体像を持っておくと、今どこにいるか分からなくなりません。

前半:合鍵(アクセストークン)を手に入れる

  1. Meta開発者ページでアプリを作る
  2. ユースケースを設定する
  3. Instagramアカウントを「テスター」登録・承認 ← つまずき①
  4. アクセストークンを発行する ← つまずき②
  5. トークンが有効か動作確認する ← つまずき③

後半:実際に投稿する

  1. 投稿に使う画像のURLを用意する ← つまずき④
  2. Pythonのプログラムを書く
  3. 実行する ← つまずき⑤⑥

「アクセストークン」という言葉が何度も出てきます。これはプログラムがInstagramに入るための合鍵だと思ってください。この合鍵を手に入れるまでが、作業の8割です。


STEP 1:Meta開発者アプリを作る

  1. developers.facebook.com にアクセスし、Facebookアカウントでログイン
  2. 「マイアプリ」→「アプリを作成」
  3. アプリ名を入力(例:〇〇珈琲自動)。自分が分かる名前で構いません
  4. ビジネスポートフォリオを選択して作成

作成すると「ダッシュボード」という画面に移ります。ここが基地になります。


STEP 2:ユースケースを設定する

ダッシュボードに「アプリのカスタマイズと要件」というチェックリストが並んでいます。一番上の項目を設定します。

  1. 「Instagramでメッセージとコンテンツを管理」をクリック
  2. 必要なアクセス許可が自動で設定されます(instagram_business_basic / instagram_business_manage_comments / instagram_business_manage_messages)
  3. 左メニューの「ユースケース」→「InstagramログインによるAPI設定」を開く

投稿できないときはここを確認

Meta公式のドキュメントでは、投稿するために必要なアクセス許可は instagram_business_basic と instagram_business_content_publish の2つとされています。

私の場合はユースケースを設定した時点で投稿できましたが、もし後のSTEP 8でうまくいかない場合は、「アクセス許可と機能」の一覧に instagram_business_content_publish が入っているか確認してください。入っていなければ、その画面から追加できます。

この画面に、以下の5ステップが表示されます。

  1. 必要なメッセージアクセス許可を追加する
  2. アクセストークンを生成する
  3. Webhooksを設定する
  4. Instagramビジネスログインを設定する
  5. アプリレビューを完了する

ここで時間を溶かさないために

このうち、投稿するだけなら1と2しか要りません。

3〜5は、他人のアカウントを扱うアプリを一般公開するときに必要な手続きです。自分のお店のアカウントに投稿するだけなら不要です。

チェックリスト形式で並んでいるので「全部埋めなければ」と思ってしまいますが、埋める必要はありません。私は最初、Webhooksの設定で長時間迷いました。完全に無駄でした。


STEP 3:Instagramテスターの登録

つまずきポイント①:「テスターへの招待」がiPhoneのアプリに出てこない

この記事の本題です。

「2. アクセストークンを生成する」を開くと、こう書かれています。

次に進む前に、役割タブでアカウントにInstagramテスターの役割を割り当ててください。

つまり、先に自分のInstagramアカウントを「テスター」として登録し、そのアカウント側で承認する必要があります。

3-1. 招待を送る(パソコン)

  1. ダッシュボードに戻る(左メニューの家アイコン)
  2. 左メニューを下にスクロールし「アプリの役割」をクリック
  3. タブの中から「Instagramテスター」を選ぶ
  4. 「メンバーを追加」から、自分のInstagramユーザー名を入力して招待

登録すると、ステータスが「承認待ち」と表示されます。

迷いやすい点:「アプリの役割」はどこにあるか

ユースケース画面の左メニューにはありません。

ユースケース画面の左メニューは、そのユースケース専用のメニュー(アクセス許可と機能/InstagramログインによるAPI設定/API統合ヘルパー/Webhooks など)だけが並んでいます。

一度ダッシュボードのトップまで戻る必要があります。左端の家アイコンを押すと戻れます。

私はここで15分探しました。

3-2. 招待を承認する

ここが最大の罠です。iPhoneのInstagramアプリでは、招待の承認画面が出てきませんでした。

私が実際に試した記録です。

  • iPhoneアプリの「設定とアクティビティ」→「アプリとウェブサイト」を開く → 「アクティブ/期限切れ/削除済み」の3タブのみ。招待なし
  • iPhoneアプリの「アプリのウェブサイトへのアクセス許可」を開く → 同じ画面が出るだけ。招待なし
  • 別のアカウントに切り替えて確認 → やはり招待なし
  • パソコンのブラウザでinstagram.comにログインして確認 → ここに「テスターへのご招待」があった

正しい手順

  1. パソコンのブラウザで instagram.com を開く
  2. 対象のInstagramアカウントでログイン
  3. プロフィールアイコン →「プロフィールを編集」
  4. 「アプリとウェブサイト」を開く
  5. 「テスターへのご招待」というタブがあるので開く
  6. 該当アプリの「承認する」をクリック

iPhoneのアプリではなく、パソコンのブラウザから開くのが確実でした。

私はここで、iPhoneの画面を何度も探し回りました。存在しないものを探していたので、当然見つかりません。この記事で一番伝えたいのは、この一点かもしれません。

補足:Threadsの招待は承認できなくても問題ありません

同時にThreadsテスターの招待が届くことがあります。こちらは承認できないことがありますが、Instagram投稿には一切関係ありません。承認待ちのまま放置して構いません。

私も承認できないまま進めましたが、投稿は問題なく成功しました。

承認後、Meta開発者ページの「アプリの役割」に戻り、対象アカウントの「承認待ち」の表示が消えていれば成功です。

ここを越えれば、山場は終わりです。


STEP 4:アクセストークンを発行する

  1. 「ユースケース」→「InstagramログインによるAPI設定」に戻る
  2. 「2. アクセストークンを生成する」を開く
  3. アカウント一覧に自分のアカウントが表示されているので「トークンを生成」をクリック
  4. ログインと権限の確認画面が出るので許可
  5. 「理解しました」にチェックを入れる
  6. アクセストークンが表示される

つまずきポイント②:トークンは一度しか表示されません

画面にもこう書かれています。

セキュリティ上の理由により、このトークンは一度しか表示されません。

必ず「コピー」ボタンを押して、メモ帳などに保存してから閉じてください。

閉じてしまった場合は、もう一度「トークンを生成」からやり直しになります。やり直し自体は可能なので、閉じてしまっても致命的ではありません。

このとき、画面に表示される Instagram User ID(数字の羅列) も一緒にメモしてください。後で使います。

保存の例

デスクトップに instagram_token.txt というファイルを作り、こう書いておきます。

アクセストークン: IGAAft...(長い文字列)
ユーザーID: 371307...(数字)
発行日: 2026/07/28

発行日を書いておく理由は、記事の後半で説明します。


STEP 5:トークンが使えるか確認する

プログラムを書く前に、ブラウザだけで確認できます。

これをやっておくと、後でエラーが出たときに「トークンは正しい」と切り分けられるので、原因探しが格段に楽になります。

ブラウザのアドレスバーに、次を入力してEnter。

https://graph.instagram.com/me?fields=id,username&access_token=(コピーしたトークン)

成功した場合

{
  "id": "371307...",
  "username": "あなたのアカウント名"
}

自分のアカウント名が表示されれば、トークンは正常です。

失敗した場合

{
  "error": {
    "message": "Invalid OAuth access token - Cannot parse access token",
    "type": "OAuthException",
    "code": 190
  }
}

つまずきポイント③:かっこを一緒に貼り付けてしまう

解説記事ではよく、こう書かれています。

access_token=[トークン]

この角かっこは「ここに入れてね」という目印であって、入力するものではありません。

  • 間違い → access_token=[IGAAft...]
  • 正しい → access_token=IGAAft...

エラーコード190で「Cannot parse access token」と出たら、まずこれを疑ってください。

私はこれで1回つまずきました。トークンの再発行までしようとしましたが、原因はかっこ2文字でした。


STEP 6:投稿する画像を用意する

ここまでで、プログラムがInstagramに入るための「合鍵」が手に入りました。ここから先は一本道です。

つまずきポイント④:iPhoneで撮った写真は、そのまま投稿できません

これは仕組み上の制約です。知らないと必ずハマります。

Instagram APIは、「ネット上に公開されている画像のURL」しか受け付けません。

つまり、iPhoneのカメラロールにある写真や、パソコンの中の画像ファイルを直接送ることはできません。

「スマホで撮ったコーヒーの写真を自動投稿したい」と思っても、その写真が事前にインターネット上のどこかに置かれている必要があるのです。

私はここで一度手が止まりました。「画像を選んでアップロードする」という発想でいたので、そもそも仕組みが違うことに気づくまで時間がかかりました。

では、どの画像を使うのか

一番簡単なのは、ネットショップの商品ページにすでに載せている画像を使うことです。

理由はシンプルで、すでにネット上に公開されているので追加の作業がゼロだからです。商品紹介の投稿なら、そもそもその画像を使いたいはずです。

新しく撮った写真を使いたい場合は、先にどこかネット上に公開する必要があります。自分のホームページに置くか、画像共有サービスにアップするか。ただし手間が増えるので、最初のテストでは避けたほうがいいです。

まずは商品画像で「動く」ことを確認してから、次を考えてください。

BASEの商品画像URLを取得する手順

  1. 自分のショップの公開ページを開く(〇〇.shopselect.net/items/1234567 のような形)
  2. ※管理画面(admin.thebase.com)ではありません。お客さんが見るページです。私は最初、管理画面のURLを使おうとして失敗しました
  3. 商品写真を右クリック
  4. 「画像のアドレスをコピー」を選ぶ
  5. ※「画像を保存」ではありません。アドレス(URL)をコピーです

こんな形のURLが取得できます。

https://baseec-img-mng.akamaized.net/images/item/origin/xxxxx.png?imformat=generic&q=90&im=Resize,width=1280,type=normal

長くて不安になりますが、これで正解です。全部まとめて使います。

なお、この作業は右クリックが必要なのでパソコンでやってください。

画像はJPEGが安全です

Meta公式のドキュメントには「サポートされている画像形式はJPEGだけです」と書かれています。

上のURLの例は .png で終わっていますが、BASEの画像URLは末尾に変換用のパラメータが付いているため、私の場合はこれで投稿できました。

ただし、画像を指定したところでエラーになる場合は、まずJPEGの画像URLに変えて試してください。原因の切り分けが早くなります。


STEP 7:プログラムを書く

「キャプション」とは

念のため確認です。Instagramの投稿写真の下に表示される説明文のことです。ハッシュタグもこの中に含めます。

タンザニアAA スノートップ

上品な酸味と芳醇な甘み、スッキリとした後味が魅力の一杯。

#自家焙煎コーヒー #スペシャルティコーヒー

この全体がキャプションです。プログラムでは、これを文字として指定します。

プログラム全文

以下をコピーして、post_instagram.py という名前で保存します。

import requests

# ===== ここを自分の情報に書き換える =====

ACCESS_TOKEN = "ここにアクセストークンを貼り付け"
IG_USER_ID = "ここにInstagramユーザーIDを貼り付け"
IMAGE_URL = "ここに画像のURLを貼り付け"

CAPTION = """タンザニアAA スノートップ

上品な酸味と芳醇な甘み、スッキリとした後味が魅力の一杯。
Qグレード認証83点のスペシャルティコーヒーです。

#自家焙煎コーヒー #スペシャルティコーヒー"""

# ===== ここから下は書き換え不要 =====

# ステップ1:投稿の下書き(コンテナ)を作る
res1 = requests.post(
    f"https://graph.instagram.com/v21.0/{IG_USER_ID}/media",
    data={
        "image_url": IMAGE_URL,
        "caption": CAPTION,
        "access_token": ACCESS_TOKEN
    }
)
print("下書き作成:", res1.json())
creation_id = res1.json()["id"]

# ステップ2:下書きを実際に公開する
res2 = requests.post(
    f"https://graph.instagram.com/v21.0/{IG_USER_ID}/media_publish",
    data={
        "creation_id": creation_id,
        "access_token": ACCESS_TOKEN
    }
)
print("投稿完了:", res2.json())

書き換えるのは上の3行とキャプションだけ

「ここから下は書き換え不要」より下は、触る必要がありません。意味が分からなくても動きます。

私も正直、全部は理解していません。それでも動きました。

v21.0 という数字について

コードの中に graph.instagram.com/v21.0/... という部分が2か所あります。これはInstagram API のバージョン番号で、私が実際に動かしたのがこのバージョンです。

Metaは定期的に新しいバージョンを出し、古いものは順次使えなくなります(公式ドキュメントの例は、現在はもっと新しい番号になっています)。

今はこのままで動きます。 もし将来「このバージョンはサポートされていない」というエラーが出たら、この数字を新しいものに上げてください。それだけで直ります。

なぜ2段階に分かれているのか

Instagramへの投稿は、「下書きを作る」→「公開する」の2回に分かれています。

一見面倒ですが、これは「画像の準備ができてから公開する」ための仕組みです。

  • 1段階目:画像のURLをInstagramに渡し、向こう側で読み込ませる。この時点ではまだ公開されない
  • 2段階目:読み込みが終わった下書きを、実際にタイムラインに出す

1段階目で creation_id という「下書きの番号」が返ってきます。2段階目では、その番号を指定して「これを公開して」と伝えています。

キャプションで引用符を3つ重ねる理由

キャプションは改行を含む長い文章になります。

通常の "..." では改行を書けません。3つ重ねた """...""" を使うと、その中では自由に改行できます。

改行したいだけなので、深く考えず「長い文章は3つ重ねた引用符で囲む」と覚えておけば十分です。


STEP 8:実行する

8-1. ターミナルを開く

Cursor / VS Code のメニューから「Terminal」→「New Terminal」。画面下部に、文字を入力できる領域が出ます。

つまずきポイント⑤:ターミナルでは右クリックが「貼り付け」になる

Windowsのターミナル(PowerShell)は、右クリックした瞬間にコピー中の文字が貼り付けられます。メニューは出ません。

これを知らずに「メニューが出ないな」と右クリックを連打すると、こうなります。

python post_instagram.pypython post_instagram.pypython post_instagram.py...

文字が延々と増えていきます。私は最初、パソコンが壊れたのかと思いました。

対処法

  • Ctrl + C を押してからEnterを押すと、入力がキャンセルされて元に戻ります
  • 貼り付けたいときは Ctrl + V を使ってください

8-2. ファイルのある場所に移動する

いきなり python post_instagram.py と打つと、こう言われることがあります。

can't open file 'C:\Users\〇〇\post_instagram.py': [Errno 2] No such file or directory

これは「そのファイル、ここには無いよ」という意味です。ターミナルが今いる場所と、ファイルを保存した場所が違うのです。

つまずきポイント⑥:「デスクトップ」がOneDriveの中にある

これは相当ハマります。

WindowsでOneDriveを使っていると、デスクトップの実体はここにはありません。

C:\Users\ユーザー名\Desktop   ← 存在しない

本当の場所はこちらです。

C:\Users\ユーザー名\OneDrive\デスクトップ   ← こっち

しかも「デスクトップ」が日本語表記です。

だから cd C:\Users\〇〇\Desktop と打っても、

cd : パス 'C:\Users\〇〇\Desktop' が存在しないため検出できません。

と言われます。デスクトップに保存したはずなのに存在しないと言われるので、何が起きているのか分からなくなります。

ファイルの本当の場所を確認する方法

エディタでファイルを開くと、画面上部にパンくずリストが表示されます。

ユーザー名 > OneDrive > デスクトップ > post_instagram.py

これが正解の場所です。

私はここにたどり着くまでに、Windowsの検索機能を使ったり、いろいろ回り道をしました。結局、エディタの画面上部に答えが書いてありました。

移動する

日本語が含まれるので、引用符で囲むのがコツです。囲まないと正しく認識されないことがあります。

cd "C:\Users\ユーザー名\OneDrive\デスクトップ"

移動できたか確認します。

dir *.py

こう表示されればOKです。

    ディレクトリ: C:\Users\〇〇\OneDrive\デスクトップ

Mode     LastWriteTime      Length Name
----     -------------      ------ ----
-a---    2026/07/28 12:01     1298 post_instagram.py

ファイル名が一覧に出ていれば、正しい場所にいます。

8-3. 必要な部品をインストールする

初回だけ必要です。

pip install requests

これをやっていないと、実行時にこう出ます。

ModuleNotFoundError: No module named 'requests'

「requestsという道具が入っていない」という意味なので、上のコマンドを打てば解決します。

インストールが成功すると、最後にこう表示されます。

Successfully installed certifi-... charset_normalizer-... idna-... requests-... urllib3-...

途中で WARNING: という黄色い文字がいくつか出ますが、無視して構いません。エラーではありません。私は不安になって読み込みましたが、問題ありませんでした。

8-4. 実行

python post_instagram.py

成功したときの表示

下書き作成: {'id': '17926319691383650'}
投稿完了: {'id': '18401672593081602'}

この2行が出たら成功です。

ここでiPhoneのInstagramアプリを開いて、投稿が反映されているか確認してください。自分のプログラムから出た投稿がタイムラインに並んでいるのは、なかなか気持ちのいいものです。


トラブル早見表

困ったらここを見てください。実際に私が遭遇したものだけを載せています。

症状・エラー 意味 対処
Cannot parse access token(code 190) トークンの形式がおかしい 角かっこが混ざっていないか確認。それでもダメなら再発行
No such file or directory ファイルの場所が違う cd で正しいフォルダへ移動(OneDriveに注意)
No module named 'requests' 部品が未インストール pip install requests
パスが存在しないため検出できません 移動先フォルダが間違い エディタのパンくずリストで実際の場所を確認
打った文字がどんどん増える ターミナルで右クリックした Ctrl + C → Enter でリセット
テスター招待が見つからない iPhoneアプリでは表示されない パソコンのブラウザ版instagram.comから承認
画像が投稿できない iPhoneやパソコンの中の画像を指定している ネット上に公開されたURLを使う
昨日まで動いたのに急にエラー トークンの期限切れの可能性 次章を参照

トークンの期限について

投稿が成功して満足していると、後から足をすくわれます。

何が起きるか

STEP 4で発行したトークンには、有効期限があります。期限が切れると、突然こうなります。

  • プログラムを実行してもエラーになる
  • 何も変更していないのに、昨日まで動いていたものが動かない
  • エラーコード190(Invalid OAuth access token)が返ってくる

自動投稿を仕込んで放置していた場合、投稿が止まっていることに何日も気づかないという事態が起こります。これが一番怖いパターンです。

期限は「60日」です

ネットの記事を調べると「約60日」と「1時間で切れる」の両方が出てきて混乱しますが、Meta公式のドキュメントを確認したところ、はっきり書かれていました。

種類 有効期限
認証コード 1時間
長期アクセストークン 60日

STEP 4でダッシュボードから発行されるのは、後者の「長期アクセストークン(60日)」です。

「1時間で切れる」という情報は、認証コードのほうの話が混ざったものでした。

もうひとつ、公式に重要な記述があります。

60日以内に更新されなかったトークンは有効期限が切れ、更新できなくなります。

つまり、期限が切れる前に更新しないと、更新すらできなくなるということです。その場合は、STEP 4の手順でもう一度発行し直すことになります。

なお、私自身はまだ期限切れを実際に経験していません。実際に切れて何か気づいたことがあれば、この記事に追記します。

今すぐやっておくこと

トークンを発行した日を記録し、カレンダーやスマホのリマインダーに、こう登録してください。

タイトル:Instagramアクセストークンを再発行する

メモ:
1. developers.facebook.com にログイン
2. アプリを選択
3. ユースケース → InstagramログインによるAPI設定
4. 「2. アクセストークンを生成する」→ 対象アカウントの「トークンを生成」
5. 表示されたトークンをコピー(一度しか表示されない)
6. post_instagram.py の ACCESS_TOKEN を書き換える

日付は、発行日から1か月半後あたりに設定しておけば安全側に倒せます。

手順までメモに書いておくのが重要です。 1か月後の自分は、確実に手順を忘れています。私は数か月放置しただけで全部忘れました。

期限が切れたときの対処

慌てる必要はありません。STEP 4とまったく同じ手順でトークンを取り直し、プログラムの ACCESS_TOKEN を書き換えるだけです。3分で終わります。

一度通った道なので、初回のように迷うことはありません。


この後どこへ進めるか

ここまでで「1回実行すれば投稿できる」状態になりました。

ここから先の発展は、段階を踏むのが安全です。理由は、いきなり完全自動化を目指すと、どこで失敗したか分からなくなるからです。

段階1:複数商品に対応させる

今のプログラムは、商品情報が直接書き込まれています。これを書き換えやすい形に整理します。

数行変えるだけで別商品を投稿できるようになるので、毎回コード全体を触る必要がなくなります。

段階2:投稿内容を一覧で管理する

Excelやスプレッドシートに「商品名 / 画像URL / キャプション」を並べ、そこから読み込む形にします。

Excelに慣れている人なら、コードを触るよりこちらのほうが管理しやすくなります。ネットショップ運営者なら、商品マスタと同じ感覚で扱えます。

段階3:時間を決めて自動実行する

「毎朝8時に自動投稿」の形にします。

まずWindowsのタスクスケジューラで試し、動作が安定したらVPS(レンタルサーバー)に移す、という順番です。

なぜいきなりVPSを契約しないほうがいいか

VPSは月額がかかる上、Linuxの操作を覚える必要があります。

まず手元のパソコンで確実に動く状態を作ってからのほうが、トラブルが起きたときに「プログラムが悪いのか、サーバー設定が悪いのか」を切り分けられます。

パソコンで動かないものは、VPSでも動きません。

私もこの順番で進めている途中です。


最後に

この作業で一番大変なのは、実はプログラムを書くことではありません。

Metaの管理画面で、必要な設定がどこにあるか探すことです。画面の構成が頻繁に変わり、日本語訳が分かりにくく、必要な項目が階層の奥に埋まっています。

だから、途中で止まっても「自分にはセンスがない」とは思わないでください。誰がやっても止まります。止まる場所が、だいたい決まっているだけです。

私は59歳で、プログラミングを学んだことはありません。一度ここで止まって数か月放置しました。でも、再開してみたら実質半日で完走できました。

止まっていた期間の長さと、残っていた作業量は、まったく関係ありませんでした。

分からなかったのは「難しかったから」ではなく、「どこを見ればいいか知らなかったから」です。この記事は、その「どこを見るか」だけを集めたものです。

止まっている人が、今日再開できますように。


用語のおさらい

用語 意味
API 外部のプログラムがサービスを操作するための窓口
アクセストークン その窓口を通るための合鍵。期限あり
ユーザーID アカウントを識別する数字の名札
テスター 公開前のアプリを試せる権限を持つ人
キャプション 投稿の説明文。ハッシュタグ含む
コンテナ 公開前の投稿の下書き
ターミナル パソコンに文字で命令する画面
cd フォルダを移動する命令(change directory)
dir そのフォルダの中身を表示する命令
pip Pythonの部品を追加する道具

コメント

タイトルとURLをコピーしました