即刻发帖如何带上圈子:submitToTopic 字段解谜
用 AI 自动发即刻(Jike)帖子时,怎么让帖子发到指定圈子?答案是发帖 body 里用
submitToTopic字段——不是topicIds,也不是topicId。本文记录完整踩坑与解决过程。日期:2026-08-12。
问题背景
在「即刻发布管理」工作流中,需要让 AI 代发帖子到指定圈子(如「AI探索站」「浴室沉思」)。但直接调用即刻 API 发帖时,帖子总是发成”个人动态”,圈子参数怎么传都不生效。
踩坑过程
❌ 尝试 1:topicIds(数组)
payload = {
"content": "内容",
"topicIds": ["63579abb6724cc583b9bba9a"], # AI探索站
}结果:报 400 错误(请求错误)。
❌ 尝试 2:topicId(单数)
payload = {"content": "内容", "topicId": "63579abb6724cc583b9bba9a"}结果:发帖成功,但圈子没挂上(帖子是个人动态,无圈子)。
❌ 尝试 3:topics(对象数组)
payload = {"content": "内容", "topics": [{"id": "63579abb6724cc583b9bba9a"}]}结果:报 400 错误。
✅ 正确做法:submitToTopic
payload = {
"content": "内容",
"pictureKeys": [],
"syncToPersonalUpdate": True,
"submitToTopic": "63579abb6724cc583b9bba9a", # 圈子 id
}结果:发帖成功,圈子正确挂上(验证返回 topic 为「AI探索站」)。
答案从哪来
这个字段不是文档里写的,是从 GitHub 开源项目 open-jike/jike-sdk 的源码里找到的:
// src/api/posts.ts
request.post(`1.0/${type}/create`, {
json: {
content,
pictureKeys: options.pictureKeys ?? [],
syncToPersonalUpdate: options.syncToPersonalUpdates ?? true,
submitToTopic: options.topicId, // ← 圈子字段
linkInfo: options.linkInfo,
},
})jike-sdk 是即刻非官方 SDK,作者逆向研究了即刻 App 的 API(api.ruguoapp.com),CreatePostOption.topicId 对应请求体的 submitToTopic 字段——字面意思就是”提交到圈子”。
如何获取圈子 id
# 搜索圈子名
POST /1.0/search/integrate
body: {"keyword": "AI探索站", "limit": 10}
# 返回 data 里 type == "TOPIC" 的项的 id 就是圈子 id关键经验
- 字段名要精确:
topicIds/topicId/topics都是错的,正确的是submitToTopic。API 字段名和直觉不同时,查源码比猜更有效。 - 开源 SDK 是宝藏:当官方文档缺失时,社区逆向的 SDK(jike-sdk、okjike-cli 等)直接给出了可用的请求结构。
- 先小步验证:发测试帖确认圈子挂上后再发正式内容,避免把正式帖子发成无圈子动态。
🔐 GitHub 评论(Giscus)
正在连接 GitHub 评论…