跳到主要內容
載入中...

IG 自動發文無痛指南:從官方 API申請教學!

你是不是也想用 AI Agent 或程式幫你自動發布 Instagram 貼文,卻在看官方文件時被「Token」、「Graph API」這些專有名詞搞到頭大?

別怕!這篇文章就是寫給完全不懂程式的骨灰級小白。我們不聊深奧的代碼,直接手把手帶你一步步點擊,只要跟著這三章的進度走,你也能輕鬆打造出自己的「AI 自動化小編」!


🛑 行前準備:檢查你的帳號(90% 的人都卡在這!)

在進入第一章之前,請先檢查你的臉書與 IG 帳號。如果這兩個沒設定好,後面一定會失敗:

  1. 你的 IG 帳號必須是「專業帳號」:請打開手機 IG 軟體,到「設定」裡檢查,將帳號類型切換為「創作者帳號」或「商業帳號」。
  2. 你的 IG 必須連結到一個 FB 粉絲專頁:API 是透過 FB 來控管 IG 的。請建立一個空的 FB 粉絲專頁,並在粉專設定裡把你的 IG 帳號綁定進去。

確認好了嗎?我們正式進入第一章!


🧱 第一章:Meta App 建立與測試人員設定

這個步驟是告訴 Meta 官方:「我們要建立一個自動化發文的通道了!」

步驟 1:建立 Meta 應用程式

  1. 用瀏覽器打開 Meta for Developers 網站,並登入你的 Facebook 帳號。
  2. 點擊右上角的 「我的應用程式 (My Apps)」,進去後點擊 「建立應用程式 (Create App)」
  3. 畫面上會問你用途,請選擇 「其他 (Other)」 或是 「企業商業 (Business)」
  4. 填寫應用程式的「顯示名稱」(例如:my_ig_bot),電子郵件不用改,直接點擊 「建立應用程式」。此時可能需要輸入你的 FB 密碼進行驗證。

步驟 2:綁定測試 IG 帳號

因為我們的發文程式還在測試階段,必須指定哪一個 IG 帳號可以被測試:

  1. 進入剛剛建立的 App 後台,在左側選單找到 「應用程式角色 (App Roles)」 > 點擊 「角色 (Roles)」
  2. 頁面往下拉,找到 「Instagram 測試人員 (Instagram Testers)」 區塊。
  3. 點擊 「新增 Instagram 測試人員」,在欄位中輸入你 欲發文的 IG 帳號用戶名(ID),然後點擊送出。
  4. 【超核心細節】:這時候 Meta 只是送出邀請。你必須登入該 IG 帳號的網頁版,點擊「設定」>「應用程式與網站」> 選擇「測試人員邀請」分頁,點擊「接受」。沒點接受的話,後面絕對拿不到權限!

🔑 第二章:金鑰權限勾選與長期 Token 獲取

這個步驟最關鍵,我們要拿到進入帳號的「通行證(Token)」,並且開啟「發文的權限」。

步驟 1:勾選發文權限(Scopes)

在 Meta 後台的設定中,你會看到一堆英文的權限開關。別慌,我們只需要勾選發文必須的幾項。

  1. 在後台選單中找到並新增 Instagram Basic DisplayInstagram Graph API
  2. 來到權限設定勾選頁面(如圖所示,系統會提供多種權限供勾選)。
  3. 請務必勾選以下核心權限
    • instagram_content_publish(允許程式幫你發布內容)
    • instagram_basic(允許程式讀取你的帳號基本資料)
    • 如果你要發 Reels 短影音,記得連同 instagram_manage_comments 等相關權限一起勾選。

💡 傻瓜貼士:官方一共列出了 12 項相關權限。雖然並非每一項都強制要勾,但為了方便開發、避免之後因漏勾而報錯,直接全勾是最省事的做法

步驟 2:產生你的第一把鑰匙(Token)與獲取 ID

  1. 在後台的 Instagram 設定中找到 「Token 生成器 (User Token Generator)」
  2. 看到你的 IG 測試帳號出現在列表中,點擊它後面的 「Generate Token」
  3. 系統會跳出一個 FB 登入授權視窗,一路點擊「同意」與「允許」。
  4. 網頁會顯示一串非常長的英文加數字密碼,這就是你的 短期存取權杖 (Short-Lived Access Token)。請立刻複製並貼到記事本存起來!同時,頁面上顯示的 User ID 也請一併抄下來。

步驟 3:讓 AI Agent 幫你升級成「60天長期金鑰」

剛剛拿到的 Token 只有幾小時就會過期。這時我們直接派 AI Agent 上場! 打開你的 AI 工具(如 ChatGPT、Claude),把下面這段指令(Prompt)複製過去,直接丟給它:

📋 給 Agent 的免腦指令: 「我剛剛拿到了 Meta API 的短期 Token。請讀取我接下來提供的變數,並幫我寫一段 Python 程式碼,向 Meta 伺服器發送請求,把這個短期 Token 換成 60天不重複登入的長期 Token (Long-Lived Access Token)。 短期 Token:[貼上你剛剛複製的長串金鑰] App ID:[在Meta後台最上方可以看到的一串數字] App Secret:[在Meta後台左側「設定」>「基本」裡可以查到的密鑰]

Agent 收到後會立刻吐出一段簡單的續期程式,你只要貼在電腦執行一次,就能拿到 60 天不失效的超級金鑰了!


🚀 第三章:一鍵發文程式碼部署(完全免改動主程式)

來到最後一步了!我們要讓程式動起來。為了做到傻瓜式管理,我們把「帳號密碼」跟「執行功能」分開。你只需要改動設定檔,主程式連碰都不用碰。

步驟 1:建立你的設定檔

在你的電腦桌面上建立一個資料夾,在裡面點右鍵新增一個一般的文字檔案,命名為 .env(注意前面有一個小數點,如果沒辦法命名,可以先存成 env.txt,用程式編輯器打開再另存新檔)。

請把你的資料填入這個檔案中:

程式碼片段

# 你的 Instagram 帳號 ID(在第二章步驟2取得的 User ID)
IG_USER_ID=987654321012345

# 你的 Meta 存取權杖(在第二章步驟3請 Agent 幫你升級完的 60 天長期 Token)
FB_ACCESS_TOKEN=EAAlYxxxxxxxxx_YOUR_LONG_LIVED_TOKEN_HERE

步驟 2:下載發文主程式碼

在同一個資料夾內,建立另一個檔案叫做 ig_auto_post.py。將下方完全無刪減、功能完整的程式碼複製並完整貼入:

Python

import os
import time
import requests
from dotenv import load_dotenv

# 自動尋找並讀取同資料夾下的 .env 檔案
load_dotenv()

# 從設定檔撈出剛才填寫的祕密資料
IG_USER_ID = os.getenv("IG_USER_ID")
FB_ACCESS_TOKEN = os.getenv("FB_ACCESS_TOKEN")
GRAPH_API_VERSION = "v20.0"  # 目前官方穩定的版本號
BASE_URL = f"https://graph.facebook.com/{GRAPH_API_VERSION}"

def publish_instagram_post(image_url, caption):
    """
    這個功能會分兩個階段,把你的圖片跟文字安全地送到 Instagram 官方伺服器並發布。
    """
    if not IG_USER_ID or not FB_ACCESS_TOKEN:
        print("【⚠️ 錯誤】找不到你的密鑰設定!請檢查 .env 檔案裡的帳號和 Token 是否填寫正確。")
        return

    print("\n[開始執行] 🚀 正在準備將貼文送往 Instagram...")
    print("--------------------------------------------------")
    print("👉 步驟 1/2:正在將圖片和文字打包成 Meta 媒體容器...")
    
    # 準備發送給 Meta 的打包資料
    container_url = f"{BASE_URL}/{IG_USER_ID}/media"
    container_payload = {
        "image_url": image_url,
        "caption": caption,
        "access_token": FB_ACCESS_TOKEN
    }
    
    try:
        # 向 Meta 發出打包請求
        response = requests.post(container_url, data=container_payload)
        res_data = response.json()
        
        # 檢查第一步有沒有成功
        if response.status_code != 200 or "id" not in res_data:
            print(f"❌【步驟 1 失敗】Meta 拒絕了請求。錯誤原因: {res_data}")
            return
            
        creation_id = res_data["id"]
        print(f"✅【步驟 1 成功】媒體打包完成!獲得臨時發布編號: {creation_id}")
        
        # 傻瓜細節:Meta 處理圖片需要時間,程式必須在這裡強制休息 5 秒,否則直接下一步會報錯!
        print("⏳ 正在等待 Meta 伺服器處理圖片,請稍候 5 秒...")
        time.sleep(5)
        
        print("👉 步驟 2/2:正在下達正式發布指令...")
        publish_url = f"{BASE_URL}/{IG_USER_ID}/media_publish"
        publish_payload = {
            "creation_id": creation_id,
            "access_token": FB_ACCESS_TOKEN
        }
        
        # 向 Meta 發出正式上架請求
        publish_response = requests.post(publish_url, data=publish_payload)
        publish_data = publish_response.json()
        
        # 檢查第二步有沒有成功
        if publish_response.status_code == 200 and "id" in publish_data:
            print("--------------------------------------------------")
            print(f"🎉【恭喜你!發布成功!】你的貼文已經順利出現在 Instagram 上了!")
            print(f"🔗 貼文官方流水號 ID: {publish_data['id']}\n")
        else:
            print(f"❌【步驟 2 失敗】正式發布時被 Meta 攔截。錯誤原因: {publish_data}")
            
    except Exception as e:
        print(f"💥【系統異常】你的網路連線或環境可能有問題。錯誤訊息: {str(e)}")

if __name__ == "__main__":
    # =====================================================================
    # 填寫你想測試發布的內容 (注意:圖片網址必須是公開網路上可以直接看得到的網址)
    # =====================================================================
    TEST_IMAGE_URL = "https://images.unsplash.com/photo-1579202673506-ca3ce28943ef" 
    TEST_POST_TEXT = "這是我人生第一則用 AI Agent 和自動化腳本發布的 IG 貼文!太神奇了!✨ #自動化 #AI小編"
    
    # 執行發文功能
    publish_instagram_post(TEST_IMAGE_URL, TEST_POST_TEXT)

步驟 3:點擊執行!

  1. 打開你的終端機(Windows 叫命令提示字元 cmd,Mac 叫 Terminal)。
  2. 輸入安裝指令,確保電腦看得懂這段程式(只需輸入一次):Bashpip install requests python-dotenv
  3. 用終端機進入你存放檔案的資料夾,輸入執行指令:Bashpython ig_auto_post.py
  4. 看到畫面上顯示 🎉【恭喜你!發布成功!】,打開你的手機 IG,就會看到熱騰騰的新貼文出現在牆上囉!

只要跟著這三章走,恭喜你已經完成了小編自動化的第一步!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *