面向开发者的 Threads API 指南(2026)

面向开发者的 Threads API 指南(2026)

Threads API 公开了哪些内容、其背后的 Meta 应用与令牌模型、两步式容器发布流程,以及每24小时250条帖子的限制。

发布到 Threads 需要两次 API 调用,而不是一次:先创建一个媒体容器,再发布它。每个主页每24小时最多可通过 API 发布250条帖子,文本帖子上限为500个字符,而且你的应用使用的每一项权限都必须先通过 Meta 的应用审核,测试名单之外的任何人才能连接。

Threads API 能发布什么内容,不能发布什么内容?

单条帖子支持三种媒体类型:TEXT、IMAGE 和 VIDEO。轮播支持 IMAGE 和 VIDEO 子项,数量在2到20个之间,一个轮播在你的发布限额中只算作一条帖子。

以下规格来自 Meta 官方文档:

限制项数值
文本长度500个字符
轮播子项数量2到20个
图片格式JPEG、PNG
图片文件大小最大8MB
图片宽度320到1440像素
图片宽高比最大10:1
视频容器MOV 或 MP4
视频编码H264 或 HEVC 视频,AAC 音频
视频帧率23到60 FPS
视频时长300秒(5分钟)
视频文件大小最大1GB
视频码率视频100Mbps,音频128kbps

有一个细节常常让人意外:表情符号是按 UTF-8 字节值计入500字符上限的,而不是按单个字符计算。在你的编辑器里看起来是480个字符的文案,可能会被拒绝。如果你是在客户端计数,表情符号要按字节计算。Threads 字数限制一文免费的 Threads 字数统计工具都已经处理好了这一点。

说明: 本文数字已对照 developers.facebook.com/docs/threads/posts 和 /docs/threads/overview 核实,截至2026年9月。各平台的这类机制可能随时无预警地变动。

鉴权模型是怎样的?

Threads 运行在 Meta 的应用基础设施上,但使用自己独立的凭据。你需要创建一个带有 Threads 用例 的 Meta 应用,该应用会颁发一组专属于 Threads 的应用 ID 和密钥,与控制面板中其他地方显示的凭据不同。用错这对凭据是新手上手时常犯的第一个错误。

权限范围划分得很细:

  • threads_basic(每个接口都需要)
  • threads_content_publish(发布内容)
  • threads_manage_repliesthreads_read_replies
  • threads_manage_insights
  • threads_delete
  • threads_location_tagging

应用审核不是可选项。 每一项权限都必须通过应用审核,并且应用必须发布到生产环境,测试者之外的用户才能授权使用。在此之前,你只能向通过应用控制面板明确邀请为测试者、并已在自己的 Threads 设置中接受邀请的用户发布内容。Meta 的文档没有说明审核需要多长时间,所以我们不会去猜测。

你需要自行搭建的令牌生命周期

这一部分最终会变成一个后台任务。

  1. 授权窗口返回一个 code。
  2. 用它换取一个短期访问令牌,有效期为1小时
  3. 再用它通过带有 grant_type=th_exchange_token 参数的 GET /access_token 换取一个长期令牌,有效期为60天。
  4. 通过带有 grant_type=th_refresh_token 参数的 GET /refresh_access_token 进行刷新。一个令牌必须已存在至少24小时且尚未过期才能刷新。刷新后的令牌再次有效60天。

如果一个令牌60天内都没有刷新,就会过期,用户必须重新授权。应用用户为私密主页授予的权限,有效期为90天。

说明: 本文数字已对照 developers.facebook.com/docs/threads/get-started 和 /get-started/long-lived-tokens 核实,截至2026年9月。各平台的这类机制可能随时无预警地变动。

实际的发布流程是怎样的?

对于单条帖子:

  1. 调用 POST /{threads-user-id}/threads,带上 media_type 以及你的文本或媒体 URL。这会返回一个容器 ID。
  2. 等待。Meta 建议在发布前平均等待30秒,让服务器完成媒体处理。
  3. 调用 POST /{threads-user-id}/threads_publish,带上该容器 ID。

对于轮播,需要插入一个步骤:先为每个子项创建一个容器,再创建一个引用这些子项的轮播容器,最后发布该轮播容器。

# 1. create the container
curl -X POST "https://graph.threads.net/v1.0/$USER_ID/threads" \
  -d "media_type=IMAGE" \
  -d "image_url=https://example.com/photo.jpg" \
  -d "text=Shipping notes for this week." \
  -d "access_token=$TOKEN"
# -> {"id":"1789..."}

# 2. wait ~30s for processing, then publish
curl -X POST "https://graph.threads.net/v1.0/$USER_ID/threads_publish" \
  -d "creation_id=1789..." \
  -d "access_token=$TOKEN"

请注意,图片和视频是通过公开 URL传递的,而不是以字节形式上传。Meta 的服务器会自行抓取它们。这意味着你的媒体文件必须公开可访问、无需鉴权,并且在抓取发生时仍然存在,这是一项大多数人事先没有规划好的托管要求。

速率限制是怎样的?

操作限制
已发布帖子每24小时滚动周期内250条
回复每24小时1,000条
删除每24小时100次
位置搜索每24小时500次
常规 API 调用每24小时为4800 × 曝光次数(最低按10次曝光计算)

这条曝光量公式值得反复琢磨。你的常规调用额度会随着主页实际获得的触达量而变化,但设有一个下限。全新的主页只能拿到最低额度。

说明: 本文数字已对照 developers.facebook.com/docs/threads/overview 核实,截至2026年9月。各平台的这类机制可能随时无预警地变动。

真正会耗费你三周时间的是什么?

应用审核。 准备录屏演示、隐私政策、一条可运行的演示路径以及企业验证,然后针对被拒的情况反复迭代。审核所需时间没有公开说明,所以最好把它当作一项日程风险,而不是一个具体任务来规划。

令牌刷新任务。 长期令牌60天后过期,并且只有在存在满24小时后才能刷新。这需要一个定时任务、一个加密令牌的存储方案、刷新失败时的告警机制,以及界面中的重新连接流程。

异步失败。 容器调用返回200,并不代表你的媒体文件是有效的。真正暴露问题的是发布调用,大约30秒之后,在另一个请求中出现。你的帖子模型需要一个”处理中”状态,以及一种在用户已经关闭页面之后仍能上报失败的方式。

公开媒体托管。 由于 Meta 是通过 URL 抓取内容,你需要提供稳定的公开 URL 并配置合理的缓存行为,并规划好在抓取被限速或被 CDN 的反爬机制拦截时该怎么办。

表情符号的字节计数。 修复起来很简单,但如果在生产环境中才发现,代价就大了。

简要总结

  • 发布需要两次调用:创建容器,等待大约30秒,再发布它。轮播则需要三次调用。
  • 媒体通过公开 URL 传递,由 Meta 负责抓取。
  • 上限为500个字符,表情符号按 UTF-8 字节计算。
  • 每个主页每24小时最多通过 API 发布250条帖子。
  • 短期令牌有效期1小时,长期令牌有效期60天,存在满24小时后即可刷新。
  • 测试者之外的用户要连接,每项权限都必须先通过应用审核,审核时长未公开。

把 Threads 与其他平台一起排期

如果 Threads 只是你整套发布方案中的一个平台,而不是全部,那么上面这些工作大部分都要针对每个网络重复一遍,只是形式各不相同。X 使用 OAuth 2.0 PKCE 和分块字节上传。Bluesky 完全不需要应用审核。LinkedIn 则需要两个独立的应用:个人主页使用 w_member_social,企业主页使用 r_organization_socialw_organization_socialrw_organization_admin,分别单独审核。

BulkPublish 通过一套 REST API 覆盖15个平台,其中就包括 Threads,容器发布流程、60天刷新周期以及异步状态轮询都由服务器端统一处理。开发者文档REST API 参考列出了所有接口,Threads 帖子排期一文则介绍了非开发者也能使用的操作方式。

相关阅读