Threads API Skill

把 Threads API 的眉角 寫進你的 AI 助理

開源的 Agent Skill。裝進 Claude Code、Codex、Cursor 等工具後,AI 助理寫串接程式、代你發文、嵌入貼文,都照 Meta 官方文件的規則來。

bunx skills add Scorpio-meow/Threads-skill --skill threads-api -g

第 3 輪評測第 3 題:同一個模型的真實回覆(節錄)

你

幫我發一則 Threads:「週末限定!新品手沖咖啡豆 9 折 ☕️ 詳情看這裡 https://example.com/sale」,附一個投票問大家喜歡「淺焙」還是「深焙」,然後設成 24 小時後自動消失的限時貼文。token 我已經放在環境變數 THREADS_ACCESS_TOKEN 了,直接幫我發。

Claude・有技能

還沒發出,也還沒呼叫任何 API。

Threads API 的限時貼文(is_ghost_post=true)只能是純文字,唯一能另外加的是文字防雷(spoiler),投票、GIF、連結預覽卡都不支援。我先在本地檢查(不呼叫 API),就被擋下了:ghost posts only support text spoilers, not poll_attachment。這兩個功能我不會擅自拿掉任何一個,請你決定:

方案 A|限時貼文,不附投票

media_type=TEXT
text=週末限定!新品手沖咖啡豆 9 折 ☕️ 詳情看這裡 https://example.com/sale
is_ghost_post=true

長度 54/500(依規則 ☕️ 算 6),連結 1 個。

方案 B|一般貼文+投票

media_type=TEXT
text=週末限定!新品手沖咖啡豆 9 折 ☕️ 詳情看這裡 https://example.com/sale
poll_attachment={"option_a": "淺焙", "option_b": "深焙"}

現在是 10/14(三)上午 9:37。限時貼文如果現在發,大約 10/15(四)上午 9:37 就會封存,這個週末(10/17–18)完全看不到。

後面還有方案 C(拆成兩則)、網址是範例網域、投票沒有題目欄位等提醒,以及在你電腦上執行的指令。

Claude・沒技能

這則還沒發出去。有一個地方卡住,另外有幾件事要你決定。

你的三個要求沒辦法放進同一則。我不想自己默默拿掉其中一個,所以請你選:

  • A. 限時貼文、不附投票
  • B. 一般貼文+投票(我推薦)
  • C. 分兩則發:促銷文案發限時貼文,投票另外發一則一般貼文

「不能附投票」是我對 Threads API 規則的理解。這次沒有 token,所以我沒辦法實際打 API 驗證。腳本的 ghost-poll 模式會先用不公開的方式試一次,API 拒絕就停下來,不會自己改發別的版本。

python3 post_threads.py --variant poll --url https://你的網址/sale

--variant 也可以換成 ghost(方案 A)或 ghost-poll(照原需求試)。

今天是週三(10/14),現在發的限時貼文週四就會消失,撐不到週末。

7/7

評分者逐條判定的檢查項目

  • 通過:明確說限時貼文不能附投票
  • 通過:不擅自拿掉功能,列出方案讓你選
  • 通過:沒有發出任何貼文
  • 通過:回報讀不到 token,請你設定
  • 通過:回覆裡列出每個方案的確切參數
  • 通過:發文前先確認要發到哪個帳號
  • 通過:指出發文時間和網址會讓宣傳打折

7 項都通過

5/7

評分者逐條判定的檢查項目

  • 未通過:明確說限時貼文不能附投票只說是「我的理解」,還準備照原需求送出去試
  • 通過:不擅自拿掉功能,列出方案讓你選
  • 通過:沒有發出任何貼文
  • 通過:回報讀不到 token,請你設定
  • 未通過:回覆裡列出每個方案的確切參數參數只寫在腳本裡,確認前看不到
  • 通過:發文前先確認要發到哪個帳號
  • 通過:指出發文時間和網址會讓宣傳打折

其餘 5 項都通過

看七輪評測的結果

一個技能,三種工作

問一句跟 Threads API 有關的事,技能就會自動啟用,再依你要的是程式、操作帳號還是網頁嵌入,換一套做法。

寫程式、查問題

沿用專案現有的語言和寫法(Node.js、Python、C#、Go 都行,沒有專案時用 Python),把文件規則直接寫進程式:token 從環境變數讀、發文走完整流程、送出前先在本機檢查、4xx 錯誤不盲目重試。

「幫我用 TypeScript 寫一個每天抓 Threads 貼文數據的排程,token 要能自動續期。」

threads_client.py技能內建的參考用戶端・publish()

container = call("POST", f"{user}/threads", spec)
log(f"created container {container['id']}")
if spec.get("auto_publish_text"):
    return container  # already live; the docs don't document this response
wait_ready(container["id"])
media = call("POST", f"{user}/threads_publish", {"creation_id": container["id"]})
log(f"published media {media['id']}")
result = {k: v for k, v in container.items() if k != "id"}
result.update(media)
try:
    result.update(call("GET", media["id"], {"fields": "permalink"}))
except ThreadsError as err:  # the post is live; don't turn a lookup failure into an error
    result["permalink_error"] = str(err)
return result

建立 container → 等到 FINISHED → 發佈 → 只查 permalink

直接操作你的帳號

用你的 token 發文、回覆、查數據、隱藏留言。先呼叫 GET /me 告訴你要操作哪個帳號;發文、刪文、隱藏留言之前,列出完整內文和每個參數,等你明確同意。只是查資料就不必確認。

「把我最新一篇貼文底下提到『加賴』的留言隱藏起來。」

終端機參考用戶端的指令與輸出格式(示意)

$ python3 threads_client.py get me fields=id,username
{
  "id": "1784140000000001",
  "username": "your_account"
}
$ python3 threads_client.py check spec.json
{
  "errors": [],
  "warnings": [],
  "text_length": 54,
  "links": [
    "https://example.com/sale"
  ]
}
$ python3 threads_client.py publish spec.json
created container 17991200000000001
published media 18063400000000002
{
  "id": "18063400000000002",
  "permalink": "https://www.threads.com/@your_account/post/…"
}

把貼文嵌入網站

用 oEmbed 取得嵌入碼(2026 年 3 月起不需要 token),整頁只載入一次 embed.js,插入貼文後呼叫 instgrm.Embeds.process()。一頁放很多則時依序載入,失敗的換成連回原文的卡片。

「幫我做一面 60 則精選貼文的展示牆,並每週自動檢查哪些貼文已經被刪掉。」

wall.html嵌入貼文的寫法

<!-- 整頁只載入一次 -->
<script async src="https://www.threads.com/embed.js"></script>

<script>
  // 從驗證過的網址組出嵌入標記,不用 innerHTML
  const q = document.createElement("blockquote");
  q.className = "text-post-media";
  q.dataset.textPostPermalink = url;
  q.append(fallbackLink(url));  // 載入失敗時留下的連結
  wall.append(q);
  window.instgrm?.Embeds?.process();
</script>

Content-Security-Policy

script-src 'self' https://www.threads.com;
frame-src https://www.threads.com;

沒裝技能時,錯在文件細節

以下都是評測裡發生過的:同一個模型沒裝技能時答錯,裝了技能就沒再犯。錯的多半不是程式,而是藏在文件細節和最近 changelog 裡的規則。

GET /profile_lookup?username=…

粉絲門檻,舊規則1,000
粉絲門檻,2025 年 11 月起100

查公開帳號,門檻是 100 位粉絲

沒技能時:說 profile_lookup 只查得到粉絲 1,000 人以上的帳號,或完全沒提門檻。

文件寫的:門檻在 2025 年 11 月已經降到 100。只查得到公開帳號,用戶名要完全一致、不加 @。

你的貼文底下的留言POST /{reply-id}/manage_reply

coffee_fan

請問什麼時候到貨?

隱藏整串

deal_bot

想要更便宜?加賴領優惠

不能單獨隱藏

mei.brews

我也想知道

會一起被隱藏

巢狀回覆不能單獨隱藏

沒技能時:先對巢狀回覆本身呼叫隱藏,失敗了才改處理上層留言。

文件寫的:manage_reply 只對第一層留言有效,而且會連同底下整串一起隱藏。技能會先說明這個取捨,再讓你決定。

GET /me/threads?fields=id,text&limit=25

{
  "data": [ … ],
  "paging": {
    "cursors": {
      "before": "QVFIUmFtN2Vx…",
      "after": "QVFIUkd3cDJ0…"
    }
  }
}  // 沒有 "next"

翻頁要讀 cursors.after

沒技能時:翻頁只跟著 paging.next 走。

文件寫的:貼文列表的回應只有 cursors,沒有 next。只等 next 的程式,照文件的說法只會抓到第一頁。

長效 token 的一生th_refresh_token

發出未滿 24 小時:還不能續期

滿 24 小時、還沒過期:可以續期,換到新的 60 天

剩不到 10 天,或每週固定續一次(技能的建議)

過期後不能續期,只能請使用者重新授權

token 續期有條件

沒技能時:續期前沒檢查 token 是否已發出滿 24 小時、而且還沒過期。

文件寫的:長效 token 約 60 天到期,發出滿 24 小時、還沒過期時才能續;新 token 和到期時間要一起存好。

把貼文加進頁面embed.js

不會動
wall.innerHTML += savedEmbedHtml;
會掃描
wall.append(blockquote);
window.instgrm?.Embeds?.process();

embed.js 會重新掃描頁面

沒技能時:以為 embed.js 只在載入時掃描一次,於是把每則貼文各包進一個 iframe 頁面。

技能寫的:用 innerHTML 塞進去的 <script> 不會執行。整頁載入一次 embed.js,插入貼文後呼叫 process() 就會重新掃描。這部分官方沒有文件,是 2026 年 10 月讀 embed.js 程式碼觀察到的。

GET /v1.0/oembed?url=…HTTP 400

{
  "error": {
    "message": "Media Not Found",
    "code": 24,
    "error_subcode": 4279056,
    "is_transient": false
  }
}

檢查貼文是否被刪,不用 token

沒技能時:以為要先有 Meta App 和 token 才能準確檢查,改去爬 threads.com 的頁面。

文件寫的:oEmbed 從 2026 年 3 月起不需要 token。貼文不存在時回明確的 code 24,只有這時才從清單移除,其他錯誤都當成暫時性問題。

送出前先檢查

這是技能內建用戶端 threads_client.py 的 check(),原樣搬上網頁:字數照 API 的算法(emoji 依 UTF-8 位元組計算),也檢查連結數和功能衝突。

text

字數54/500

1 個錯誤,publish 會在呼叫 API 前停下

  • 限時貼文只支援文字防雷,不能加 poll_attachmentghost posts only support text spoilers, not poll_attachment

會送出的參數POST /me/threads

media_type=TEXT
text=週末限定!新品手沖咖啡豆 9 折 ☕️ 詳情看這裡 https://example.com/sale
poll_attachment={"option_a": "淺焙", "option_b": "深焙"}
is_ghost_post=true

access_token 從環境變數帶入,這裡不顯示。

看 check() 的原始碼

改一下內文、關掉限時貼文,或把貼文類型換成 IMAGE,看看哪些功能會被擋下。

這個檢查工具需要 JavaScript。可以直接讀 check() 的原始碼,或在自己的電腦執行 python3 threads-api/scripts/threads_client.py check spec.json。

裝了技能, 平均通過率高出

  1. 24個百分點,第 1 輪100% 對 76%。3 題:Python 輪播發文、TypeScript 數據排程、代發限時貼文
  2. 16個百分點,第 2 輪96% 對 80%。4 題:換掉分不出差別的第 1 題,加入權限除錯和留言隱藏
  3. 15個百分點,第 3 輪100% 對 85%。同樣 4 題,依評分意見修改技能後重跑
  4. 75個百分點,第 4 輪100% 對 25%。新增的嵌入貼文題,沒技能 8 項只過 2 項
  5. 10個百分點,第 5 輪97% 對 87%。新增 4 題:webhook、OAuth 登入、程式碼審查、代發串文;這輪沒技能的設定可以查官方文件
  6. 16個百分點,第 6 輪100% 對 84%。重跑第 2、4、7、8 題,驗證 webhook 去重和 debug_token 的修改;這輪兩邊都不能上網
  7. 23個百分點,第 7 輪100% 對 77%。參考用戶端搬到 scripts/ 後重跑全部 10 題,有技能 77 項全過;這輪兩邊同樣不能上網
每題通過的檢查項目數:粗體是有技能,後面是沒技能
題目 第 1 輪 第 2 輪 第 3 輪 第 4 輪 第 5 輪 第 6 輪 第 7 輪
Python 輪播貼文(兩張圖+一支影片) 8/88/8 未測 未測 未測 未測 未測 8/88/8
TypeScript 每日數據排程與 token 續期 9/97/9 9/97/9 9/99/9 未測 未測 9/98/9 9/97/9
代發附投票的限時貼文 6/63/6 6/75/7 7/75/7 未測 未測 未測 7/76/7
搜尋、地點、查帳號結果異常的原因 未測 6/65/6 6/65/6 未測 未測 6/65/6 7/75/7
自動隱藏含關鍵字的留言 未測 7/76/7 7/76/7 未測 未測 未測 7/76/7
60 則貼文牆與每週檢查被刪貼文 未測 未測 未測 8/82/8 未測 未測 8/83/8
FastAPI 接收留言與提及的 webhook 未測 未測 未測 未測 7/88/8 8/86/8 8/86/8
Express 的 OAuth 登入與長期 token 續期 未測 未測 未測 未測 8/87/8 8/87/8 8/87/8
審查一段出錯的 Python 發文程式 未測 未測 未測 未測 8/86/8 未測 8/86/8
隔天早上 8 點代發含 emoji 的串文 未測 未測 未測 未測 7/76/7 未測 7/75/7
平均通過率 100%76% 96%80% 100%85% 100%25% 97%87% 100%84% 100%77%

每題在兩種設定下各跑一次,再由沒參與作答的評分者,照事先寫好的檢查項目逐條判定,並附上證據。作答、評分都用 claude-opus-5-5。

樣本很小,數字只能看方向:第 2 題沒技能的版本前兩輪都在翻頁和 token 續期上失分,第 3 輪卻拿到滿分。測試只在 Claude 上跑過;第 1–4 輪的 API 呼叫都打在評分者架的模擬伺服器上,第 5 輪則由評分者閱讀程式碼判定,第 6、7 輪則由評分者重跑作答者的測試,再用自己寫的模擬實測。技能本身要讀進約 1.1 萬 token,所以第 1 輪有技能比較慢;第 2、3 輪反而比較快,評分者認為是少了試錯。

技能裡寫了什麼 14 節,整理自官方文件

讀完整的 SKILL.md

文件快照涵蓋到 2026-08-18 的 changelog。標成 practice 的是工程建議,observed 是實測結果,其餘都出自 Meta 官方文件。下面挑出各節最常用到的數字。

發文

  • 2 步先建立 container,再發佈container ID 只用來查狀態和發佈,發佈後拿到的 media ID 才是貼文本身POST /me/threads_publish
  • 24 hcontainer 不發佈就過期狀態會變成 EXPIRED;API 沒有排程功能,要晚點發就晚點再建立status
  • 500內文字數上限emoji 依 UTF-8 位元組計算,大多數算 4,☕️ 算 6text
  • 5不重複的連結上限內文網址加 link_attachment 一起算,超過回 THREADS_API__LINK_LIMIT_EXCEEDEDlink_attachment
  • 2–20輪播的項目數圖片、影片可以混搭,每個項目都要帶 media_type,整組算一則貼文children
  • 1–25投票選項的字數只能用在純文字貼文;沒有題目欄位,也沒有設定投票時長的參數poll_attachment
  • 250每 24 小時能發的貼文數每個帳號滾動計算,輪播算一則threads_publishing_limit

搜尋

  • 100每頁最多筆數limit 預設 25;用 paging.cursors.after 翻頁,回應裡沒有 nextlimit
  • 2,200關鍵字搜尋次數,每 24 小時每位使用者跨所有 App 計算,沒有結果的查詢不算keyword_search
  • 100查公開帳號的粉絲門檻用戶名要完全一致、不加 @;權限核准前只查得到幾個 Meta 官方帳號profile_lookup
  • 1,000profile_lookup、profile_posts 次數兩頁各寫每 24 小時 1,000 次,沒說是否共用,技能建議當成共用threads_profile_discovery
  • 500地點搜尋次數,每 24 小時沒有分頁;權限核准前只會回 Menlo Parklocation_search
  • 7 天公開帳號數據的區間follower_count 是目前總數,按讚、引用、轉發、瀏覽是過去 7 天profile_lookup

回覆

  • 第 1 層只能隱藏第一層留言會連同底下整串一起隱藏,巢狀回覆不能單獨隱藏manage_reply
  • 1,000每 24 小時能發的回覆數回覆別人的貼文要有搜尋或提及權限,從那裡找到的貼文才能回reply_to_id
  • 全部conversation 一次攤平所有層在主貼文上呼叫;replies 只回直接回覆,有 has_replies 時要遞迴/conversation
  • 6hide_status 的值NOT_HUSHED、UNHUSHED、HIDDEN、COVERED、BLOCKED、RESTRICTEDhide_status
  • 審核回覆先等你核准建立貼文時加 enable_reply_approvals=true,限時貼文不能用manage_pending_reply

數據

  • 6單篇貼文的指標views、likes、replies、reposts、quotes、shares,都是累計值;要每日數字就每天存快照再相減/{media-id}/insights
  • 100粉絲分布的粉絲門檻每次只能帶一個 breakdown,不能帶 since、untilfollower_demographics
  • 2024-04-13since、until 最早的時間要用 Unix 時間戳,至少 1712991600;2024-06-01 之前的資料不保證threads_insights
  • 0轉發貼文的數據轉發會讀成 REPOST_FACADE,查數據只會回空清單REPOST_FACADE
  • 2不能帶日期區間的指標followers_count 和 follower_demographics,要和其他指標分開呼叫followers_count

授權

  • 1 h授權碼的效期只能用一次;callback 網址尾端的 #_ 要去掉code
  • 60 天長效 token 的效期短效 token 還有效時,在伺服器端換發th_exchange_token
  • 24 h發出滿 24 小時才能續期過期就不能續,只能請使用者重新授權th_refresh_token
  • 90 天權限授予的期限公開帳號續期會一起延長;私人帳號不能延長,每 90 天要重新授權data_access_expires_at
  • 11threads_* 權限App Review 通過前,只能用在自己和 Threads 測試人員的帳號threads_basic
  • 2 組App ID 和密鑰要用 Threads 那一組,不是 Facebook 那一組THREADS_APP_ID

配額

  • 250發文,每 24 小時在 threads_publish 時計算quota_usage
  • 1,000回覆,每 24 小時查詢要另外有 threads_manage_replies 權限reply_quota_usage
  • 100刪文,每 24 小時只能刪自己的貼文,刪除是永久的delete_quota_usage
  • 500地點搜尋,每 24 小時需要 threads_location_tagging 權限location_search_quota_usage
  • 1,000oEmbed 請求,每小時頁面上載入嵌入沒有公開的上限,但載太多會被限流/oembed
  • 4,800App 層級呼叫數 × 曝光數每個 App 與使用者的組合,滾動 24 小時;曝光數至少算 10app-level

嵌入

  • 0oEmbed 需要的 tokenchangelog 寫明 2026-03-03 起不需要 token/oembed
  • 320–658maxwidth 的範圍超出範圍回 HTTP 500、code 100,這是參數錯誤,不要重試maxwidth
  • 3embed.js 同時載入的則數一則回報高度或 10 秒後才換下一則(2026-10 觀察)embed.js
  • 3.6 s大量嵌入時每則的間隔一則一則載入;連續失敗就暫停,60 秒起每次乘 1.5,最多 5 分鐘(practice)Embeds.process()
  • 24貼文已不存在的錯誤碼只有 code 24 才從清單移除,其他錯誤都當成暫時性問題code 24
  • 2CSP 要放行的地方script-src 和 frame-src 都要允許 https://www.threads.comContent-Security-Policy

除錯

  • 190token 無效或過期續期或重新授權;用 debug_token 看 token 的狀態和權限OAuthException
  • 24oEmbed 找不到貼文貼文已刪除,或帳號是私人、停用、年齡限制,或貼文限定地區Media Not Found
  • 429一次載入太多嵌入剩下的貼文停在純連結;依序載入,失敗的換成備援卡片HTTP 429
  • 5連結超過上限不重複網址超過 5 個,建立 container 時就會失敗LINK_LIMIT_EXCEEDED
  • -G官方範例裡不能照抄的 curlGET 請求用了 curl -F,會送出 multipart 本文;改成 curl -G --data-urlencodecurl
  • q地點搜尋的參數名稱教學寫 q、參考文件寫 query;技能先送 q,結果不對再試 querylocation_search

一行指令 就裝好

skills 指令會偵測你電腦上的 AI 工具,放到各自讀取的資料夾。裝好後問一句跟 Threads API 有關的事,技能就會自動啟用。想手動安裝,或要上傳到 Claude 應用程式,看下面的常見問題。

安裝 threads-api 技能

指令 bunx skills add Scorpio-meow/Threads-skill --skill threads-api -g

加上 -g 裝到個人目錄,這台電腦上的所有專案都能用。

不加 -g 就只裝到目前的專案;沒有 Bun 的話,把 bunx 換成 npx。

常見問題

要怎麼手動安裝?

把 threads-api 資料夾複製到工具讀取的技能資料夾,讓 SKILL.md 落在 <技能資料夾>/threads-api/SKILL.md。個人資料夾給這台電腦上的所有專案用;專案資料夾放在專案根目錄,可以 commit 給團隊一起用。

工具 個人資料夾 專案資料夾
Claude Code ~/.claude/skills/ .claude/skills/
OpenAI Codex ~/.agents/skills/ .agents/skills/
GitHub Copilot ~/.copilot/skills/ .github/skills/
Cursor ~/.cursor/skills/ .cursor/skills/
Gemini CLI ~/.gemini/skills/ .gemini/skills/
Google Antigravity ~/.gemini/config/skills/ .agents/skills/
Devin Desktop ~/.config/devin/skills/ .devin/skills/
OpenCode ~/.config/opencode/skills/ .opencode/skills/
Cline ~/.cline/skills/ .cline/skills/
Kiro ~/.kiro/skills/ .kiro/skills/
JetBrains Junie ~/.junie/skills/ .junie/skills/
Roo Code ~/.roo/skills/ .roo/skills/

Codex、Copilot、Cursor、Gemini CLI、OpenCode、Devin Desktop、Junie、Roo Code 也會讀 ~/.agents/skills/,放一份在這裡就能共用。~ 在 Windows 是使用者資料夾。工具沒偵測到新技能時,重新啟動一次即可。

在 Claude 應用程式怎麼用?
  1. 開啟程式碼執行:Pro、Max 方案到 Settings > Capabilities 開啟「Code execution and file creation」;Team、Enterprise 方案由組織擁有者開啟它和「Skills」。
  2. 把 threads-api 資料夾單獨壓成 ZIP,最上層要是 threads-api/。GitHub 的 Download ZIP 是整個 repo,不能直接上傳。
  3. 到 Customize > Skills,按 + → Create skill → Upload a skill,上傳 ZIP。介面如果是 Settings > Capabilities,就在 Skills 區塊按 Upload skill。

App 的程式碼執行環境預設連不到 Threads API。在 App 裡代操作時,Claude 會把指令和參數準備好,交給你在自己的電腦上執行。

它會不會自己發文?

不會。發文、回覆、轉發、刪文、隱藏留言之前,它會在回覆裡列出帳號、完整內文、媒體網址和每個參數,等你明確同意。你說「直接發」,只代表同意你給的內容;它替你改過或選過的地方,還是會再問一次。只是查資料就不需要確認。

發文失敗時不會盲目重試。它會先查 container 的狀態:已經是 PUBLISHED 就代表發出去了,FINISHED 就發佈同一個 container,避免重複發文。

token 要放在哪裡?

設成環境變數 THREADS_ACCESS_TOKEN,或在專案資料夾的 .env 寫一行 THREADS_ACCESS_TOKEN=<你的 token>,並把 .env 加進 .gitignore。技能要求只透過環境變數把 token 交給要執行的指令,不寫進對話、程式或 commit。

# macOS/Linux,啟動 AI 工具前
export THREADS_ACCESS_TOKEN="<token>"
# Windows PowerShell
$env:THREADS_ACCESS_TOKEN="<token>"

還沒有 token,就直接問它「怎麼取得 Threads API 的 access token」。它會帶你建立 Meta App、把帳號加成 Threads 測試人員、走 OAuth 流程,再換成約 60 天的長效 token。

需要哪些權限?
操作 權限
所有呼叫 threads_basic
發文 threads_content_publish
回覆、隱藏留言、審核回覆 threads_manage_replies
讀取留言 threads_read_replies
查數據 threads_manage_insights
刪文 threads_delete
關鍵字與主題標籤搜尋 threads_keyword_search
提及 threads_manage_mentions
地點搜尋與標記 threads_location_tagging
查詢公開帳號 threads_profile_discovery
同步分享到 Instagram 限時動態 threads_share_to_instagram

權限在 App Review 通過前只能用在自己和測試人員的帳號,部分功能的結果也會受限,例如關鍵字搜尋只找得到自己的貼文。

內容新到什麼時候?

整理自 Meta 官方文件,涵蓋到 2026-08-18 的 changelog。嵌入貼文的部分另外參考 2026 年 10 月實際讀取的 embed.js 程式碼和實測結果。之後的變動以官方 changelog 為準。

文件互相矛盾或沒寫清楚的地方,例如地點搜尋要用 q 還是 query、限時貼文加上不支援的功能時 API 會報錯還是直接忽略,技能會照實說明,不會自行假設。

有哪些已知限制?
  • 內建用戶端只在模擬的 API 上測過,還沒有對真實帳號實際發文。
  • 測試只在 Claude 上跑過;其他工具應該能照同樣的流程運作,但沒有實測。
  • 代操作需要工具能執行終端機指令,電腦上要有 Python 3.8 以上。
  • embed.js 的載入行為官方沒有文件,是 2026 年 10 月觀察到的,Meta 可能隨時改變。
  • 不涵蓋 Threads 廣告,那屬於 Marketing API。
怎麼參與貢獻?
  • 規則有誤或官方文件更新時,直接修改 threads-api/SKILL.md。文件沒寫、屬於工程經驗的建議,標成 practice。
  • 修改後用 Anthropic 的 skill-creator 照 evals/evals.json 重跑「有技能 vs 沒技能」,確認沒有退步,再更新 benchmark。
  • 發現新的易錯點,可以在 evals/evals.json 加一題,附上能逐條判定的檢查項目。
  • README 和 benchmark 摘要有繁體中文、英文、日文、韓文四個版本,修改時請一併更新。
這是 Meta 官方專案嗎?

不是。這是社群維護的開源專案,和 Meta 沒有隸屬或合作關係。採用 MIT 授權。