一句话回答:牛客网自动发布要分两条路走,首页“发动态”调的是
moment/create接口,讨论区“发长文”走的是完全独立的长文体系(带查重、专属图床、50 字标题上限),两边字段和限制都不一样,命令分别是ppcli nowcoder post和ppcli nowcoder article,且都要求实名发布,且都没有预览模式——不带任何开关就会直接提交。
秋招季写一篇“字节 offer 和腾讯 offer 怎么选”的面经,常规流程是先在首页发一条动态引流,再把详细分析整理成一篇长文存进讨论区方便后面被搜到。这两步在牛客网后台是两个完全不同的入口:动态编辑框和长文编辑器不共用一套接口,同一张截图往往要传两次,标题长度限制也不一样。手动切两次页面、传两次图,一篇面经真正“发完”经常要花上十几分钟,还没算上发完之后回帖区的问题要不要盯着回。
动态和长文,牛客网背后其实是两套系统
很多人以为“发动态”和“发长文”只是同一个发布功能换了个排版,实际在接口层面它们几乎没有共用的部分。
首页动态走的是 moment/create 这个接口,输入只有正文和一个可选标题,提交之后落在个人主页的动态流里,适合“刚拿到 offer”“刚面完试”这类短内容。讨论区长文走的是完全独立的长文体系:先拿自己发过的内容列表按标题查一次重(同标题如果自己已经发过一篇,会直接拦下来,防止手动重试时把同一篇内容发成两份),再把正文里的图片转存到牛客自己的图床(uploadfiles.nowcoder.com,外链图片会失效),最后才真正创建文章,落在 nowcoder.com/discuss/<contentId> 这个地址下。
对应到命令上,两条链路也是分开的:
# 发一条动态(首页引流用,走 moment/create)
ppcli nowcoder post --file draft.md --title "字节和腾讯offer怎么选"
# 发一篇长文(讨论区归档用,走独立的长文体系,带查重)
ppcli nowcoder article "字节offer和腾讯offer详细对比" --file review.md
nowcoder article 的标题上限是 50 字,超出会被直接拒绝而不是自动截断;--allow-duplicate 可以在确认不是误触重试的情况下绕开查重;正文默认按 Markdown 处理,传 --html 则按原始 HTML 处理,不做转换。这两条命令都没有预览或 dry-run 模式,不带任何开关就会直接提交发布,真正能防重复的只有 --allow-duplicate 对应的那道查重(比对自己历史内容的标题),先在别的地方确认内容没问题再跑命令。
手动发这两条内容,时间耗在哪
同一篇面经想同时留一条动态和一篇长文,手动做要经过这几步:动态编辑框传一次配图,长文编辑器再传一次同样的图;动态发完切到讨论区重新打开编辑器,标题字数超了才发现要删减;发完两边都不会提醒你,回帖区的提问全靠自己隔一段时间去翻。真正麻烦的不是“发布”这个动作本身,是两套系统各自的格式规则和图床要求都得自己一个个踩过才知道。
让 AI 用你自己的账号接管这两条链路
PublishPort 的做法不是重新做一个牛客网的发布器,而是把 local_bash 这一个原语接进你已经登录过牛客网的浏览器环境,AI 自己读 ppcli nowcoder post -h 和 ppcli nowcoder article -h 就知道两条命令分别要什么参数,不需要为牛客网单独写一套适配器。实际流程是 AI 按你的素材起草动态和长文两版内容,你审核一遍确认没问题,再触发对应命令:动态走 moment/create 直接发,长文走查重后落到讨论区。发布只是第一步,下载 PublishPort 接管的还包括发完之后的评论区——面经底下的追问往往三五分钟内就会来,晚回一天基本等于没回,具体怎么接住私信和评论可以参考牛客网私信自动回复怎么做,账号体系是打通的,不用来回切换登录状态。
边界与注意
- 两条命令都是实名发布,脚本层不支持一键匿名。 牛客网前端有“发布后转匿名”的功能,但转匿名之后不能再改回实名,是官方说明里写明的不可逆流程,工具默认按实名提交,需要匿名的内容建议还是手动走前端那条路。
- 频繁发帖是牛客网自己列出的删帖理由。 牛客社区规范第三章第 9 条把“频繁发帖”单独列为删帖依据,跟内容质量是两件事,发布节奏按真人来,别指望自动化能把这条规则绕过去。
- 长文的查重是真实拦截,不是摆设。 同标题同正文提交两次会被直接拦下,这也是为什么脚本报错时先检查是不是上次已经发成功了,而不是反复重试。
- AI 起草的内容仍然要过一遍人工审核。 网信办等四部门发布的《人工智能生成合成内容标识办法》要求 AI 生成内容主动标识,牛客网的发布接口目前没有像有些平台那样单独开一个 AI 声明字段,标不标、怎么标需要自己把握,不是工具能替你决定的事。
发布前检查清单
- 动态和长文里用到的图片,是否已经确认牛客网图床能正常显示(外链图片会失效)
- 长文标题是否压在 50 字以内,超出会被直接拒绝
- 提交长文前有没有把握这不是同标题同正文的重复提交
- 需要匿名的内容,是不是打算走前端手动那条路,而不是默认的实名脚本发布
- 发布节奏是否符合真人频率,没有在短时间内连续发多条
常见问题 / FAQ
牛客网发动态和发长文有什么区别?
发动态走的是首页 moment/create 接口,只需要正文加一个可选标题,适合简短的进度更新;发长文走的是讨论区独立的长文体系,带查重和专属图床,标题上限 50 字,适合完整的面经或复盘分析。两者字段、限制和落地页面都不一样,不是同一套接口换个排版。
牛客网可以匿名发布吗?自动化工具能匿名发吗?
牛客网前端支持发布后转匿名,但按官方说明,转匿名是不可逆的,一旦转了就不能再改回实名。自动化工具默认按实名提交,不支持一键匿名发布,涉及薪资爆料等需要匿名的内容,建议还是走前端手动那条路。
牛客网发帖会不会因为发得太频繁被处理?
会。牛客社区规范把“频繁发帖”单独列为删帖理由之一,跟内容本身是否违规是两件事。自动化能省下的是格式转换和图片转存这层重复劳动,发布节奏还是要按正常真人的频率来,不能当成可以无限发的理由。
用工具自动发牛客网,安全吗?
工具本身走的是你自己登录过的浏览器环境和账号,不会绕开牛客网的登录校验或频控机制。真正的风险点在于内容本身:刷屏、硬广、频繁发帖都是牛客社区规范里明确写出来的删帖甚至处理依据,没有工具能承诺绝对不触发这些规则,安全边界最终还是取决于发的内容和节奏。
AI 帮我写的面经或长文需要标注吗?
按现行的 AIGC 标识规定,AI 生成或合成的内容需要主动标识,这条规则不区分发在哪个平台。牛客网的发布接口目前没有像部分平台那样单独开一个 AI 声明字段,标注方式需要自己在正文里体现,不是工具能自动帮你决定的事。
