网易首页 > 网易号 > 正文 申请入驻

踩坑与经验:我在评论区,发了 1262 个激活码

0
分享至

上周五,我发了篇文章:

文章中我承诺: 当天留言的朋友,都可以拿到邀请码

很快留言破千

按计划,周一的时候,Fellou 的朋友,会通过「评论回复」的方式发码

在这个过程中,我踩了很多坑,也摸索出如何「自动回复评论区」的方法。

最终,今天用脚本,成功在评论区发放激活码 1262 个

教训与经验,在此分享

最初设想

在公众号里,管理员是可以设置评论区的显示/隐藏规则。

于是,我有了这样一个方案:

周五当天的评论 公开评论 + 公开回复 周六及之后的评论 评论隐藏 + 回复隐藏 到了周一 Fellou 的小伙伴开始逐条回复

设想中,这样做就可以确保:
只有评论者本人能看到激活码

第一次踩坑

激活码,是人工手发的,一共发了四天

周四总算发完,我松了口气,问了几位朋友:“你们收到激活码了吗?”

结果清一色回复:没有

我当场傻眼。

后台一查,好家伙:系统把所有回复标成垃圾信息,全部隐藏了。

想一下也合理:每条评论内容都是“随机字符”,数量巨大,确实太像广告。

尝试用脚本解决

既然是系统折叠的,那我就自己拉出来!

我以前学过点前端知识,配合 ChatGPT 写了个小脚本,把这些评论批量点开,恢复可见。

脚本运行,评论被逐条放了出来。

这下,我以为这回总没问题了。

第二次踩坑

周五,我又去问了一轮:“现在收到激活码了吗?”

依然:没有

我更迷惑了,只能逐一比对后台数据,终于发现微信的一个奇妙规则:

回复者是管理员 + 设置为公开 → 所有人可见 回复者是管理员 + 设置为未公开 → 只有评论者本人可见 回复者是非管理员 + 设置为公开 → 所有人可见 回复者是非管理员 + 设置为不公开 → 没人能看见

也就是说,我之前让小伙伴帮忙发激活码——完全无效

最终方案:用脚本发码

为了确保能送到,我自己写了一个脚本,模拟以我的名义进行自动回复。

这个脚本可以做到:

  • • 自动翻页;

  • • 逐条评论点击“回复”;

  • • 自动填入激活码;

  • • 回车发送。

代码如下:

(async () => {   const activationCodes = ["激活码1", "激活码2", "激活码3", "激活码4"...];   let currentCodeIndex = 0;   const makeReplyText = (code) => ` 你的激活码是:${code},祝使用愉快! 非常抱歉,在之前发码过程中,系统检测到大量相似内容,后半段的发送被误判为垃圾信息,导致激活码未能正常送达。我在整理后台时发现了这个问题,特地补发给你。 为了避免将来错过推送,建议将本账号「星标」置顶,这样即使推送量较大,也能第一时间收到通知,也欢迎推荐本账号给身边的朋友,感谢支持! 「赛博禅心」是我个人运营的 AI 行业垂直媒体,面向 AI 从业者、产业研究者,以及一级/二级市场关注者,专注于提供准确、及时、深度的行业资讯。 「赛博禅心」有一定的行业背景,也是目前国内唯一受邀参与 OpenAI 发布活动的中文媒体,常以首发稿的方式,供给第0手内容。 `.trim();   async function processPage() {     const replyButtons = Array.from(document.querySelectorAll(       '#commentlist .comment-list__item-opr .icon-reply'     ));     for (let i = 0; i < replyButtons.length; i++) {       if (currentCodeIndex >= activationCodes.length) {         console.warn(`❌ 激活码已发完,停止于第 ${i + 1} 条评论`);         return false;       }       const replyBtn = replyButtons[i];       const activationCode = activationCodes[currentCodeIndex];       const container = replyBtn.closest('#commentlist > div > div');       if (!container) continue;       const siblings = Array.from(container.parentNode.children);       console.log(` 正在处理第 ${nthIndex} 条评论 / 激活码 ${currentCodeIndex + 1}:${activationCode}`);       const nthIndex = siblings.indexOf(container) + 1;       // 点击回复按钮       if (typeof replyBtn.click === 'function') {         replyBtn.click();       }       // 等待输入框出现       let editor = null;       for (let t = 0; t < 30; t++) { // 最多等3秒         await new Promise(r => setTimeout(r, 100));         editor = document.querySelector(           `#commentlist > div > div:nth-child(${nthIndex}) > div.comment-reply-box .ProseMirror`         );         if (editor && getComputedStyle(editor).display !== 'none') break;       }       if (!editor) {         console.warn(`⚠️ 第 ${nthIndex} 条评论未找到输入框,跳过`);         continue;       }       // 清空旧内容(避免上次残留)       editor.focus();       editor.innerHTML = "";       await new Promise(r => setTimeout(r, 100));       // 输入新的激活码文本       document.execCommand('insertText', false, makeReplyText(activationCode));       console.log(`✅ 已发放:${activationCode}`);       // 等待 0.1 秒,确保输入框内容稳定       await new Promise(r => setTimeout(r, 100));       // 再次确认内容是否正确(确保不是空白)       if (!editor.innerText.includes(activationCode)) {         console.error(`❌ 输入异常,激活码 ${activationCode} 内容未写入,重试此评论`);         continue; // 不前进激活码索引,重新处理这条评论       }       // 发送(回车)       const enterEvent = new KeyboardEvent('keydown', {         bubbles: true,         cancelable: true,         key: 'Enter',         code: 'Enter',         keyCode: 13,         which: 13       });       editor.dispatchEvent(enterEvent);       console.log(`✅ 第 ${nthIndex} 条评论已发送`);       // 成功发送后才移动到下一个激活码       currentCodeIndex++;       // 评论间隔       await new Promise(r => setTimeout(r, 2000));     }     return true;   }   async function goToNextPage() {     const navLinks = document.querySelectorAll(       '#app > div.weui-desktop-layout__main__bd > section > div.comment-list-wrp > div.weui-desktop-pagination > span.weui-desktop-pagination__nav > a'     );     const nextBtn = Array.from(navLinks).find(a => a.innerText.includes('下一页') || a.getAttribute('title')?.includes('下一页'));     if (nextBtn && typeof nextBtn.click === 'function') {       nextBtn.click();       console.log('➡️ 翻到下一页...');       await new Promise(r => setTimeout(r, 3000));       return true;     }     return false;   }   while (true) {     const continueTask = await processPage();     if (!continueTask) break;     const hasNext = await goToNextPage();     if (!hasNext) {       console.log(' 已无下一页,任务结束');       break;     }   }   console.log(` 激活码发放任务完成,总共成功发放 ${currentCodeIndex} 个`); })();

脚本写完是下午五点半。

方法和之前一样,F12 打开调试,运行。

很好,我在微信通知里,收到了回复。

理论上,3 秒发一个,1 小时能跑完。

但中途调试还是花了点时间,最终在晚上八点左右才正式发完。

你也想这样发码?

其实也不难:

  1. 1. 打开公众号后台的评论管理;

  2. 2. 按下 F12 进入控制台;

  3. 3. 粘贴脚本,把激活码列表填进去;

  4. 4. 运行脚本即可,程序会自动处理每条评论。

切换到这个页面,粘贴即可,记得改代码 教训 & 收获 教训

发生上面的事情,问题在我:

  • • 没意识到激活码在形式上像垃圾信息;

  • • 规则想得太乐观,没有提前测试或核实;

  • • 没有第一时间跟用户确认收码情况,导致问题持续了几天。

收获

希望我的教训,成为大家的收获

  • • 评论区是一个非常好用的精准回复渠道;

  • • 只要是管理员,就可以通过 JS 脚本,来高效完成批量回复;

  • • 可以请程序员朋友,或者 AI 可以帮你从 0 写出能跑通的脚本;


特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
"刘星姥姥"孙桂田:我最后悔的,就是花2.6万,买下故宫旁边的四合院

"刘星姥姥"孙桂田:我最后悔的,就是花2.6万,买下故宫旁边的四合院

杰丝聊古今
2026-08-11 04:17:55
从“威胁”到“竞争者”,美国人对华认知正悄然改变

从“威胁”到“竞争者”,美国人对华认知正悄然改变

环球时报国际
2026-08-12 08:15:06
中央五套直播乒乓球时间:8月12日CCTV5节目单,附国乒赛程

中央五套直播乒乓球时间:8月12日CCTV5节目单,附国乒赛程

江启
2026-08-12 11:30:07
1957 年建成的武汉长江大桥,能不能拆建来缓解老城交通压力?

1957 年建成的武汉长江大桥,能不能拆建来缓解老城交通压力?

小鹿姐姐情感说
2026-08-12 13:20:38
发现一个奇怪的现象:儿女有出息,去了国外,等于没有生;儿女去了大城市,等于生了半个;留在身边的,虽然穷一点,但起码有个依靠

发现一个奇怪的现象:儿女有出息,去了国外,等于没有生;儿女去了大城市,等于生了半个;留在身边的,虽然穷一点,但起码有个依靠

背包旅行
2026-08-10 15:09:08
名古屋亚运会还没开幕,日本主办方压力增大,钱的问题才是真正难题

名古屋亚运会还没开幕,日本主办方压力增大,钱的问题才是真正难题

生活新鲜市
2026-08-12 12:22:03
傍晚起雨势加大,北京迎来暴雨大暴雨天气

傍晚起雨势加大,北京迎来暴雨大暴雨天气

兰亭墨未干
2026-08-12 11:11:33
击中俄军导弹基地!乌军正学习对手,猎杀“伊斯坎德尔-M”导弹发射车

击中俄军导弹基地!乌军正学习对手,猎杀“伊斯坎德尔-M”导弹发射车

鹰眼Defence
2026-08-11 17:29:57
我妈退休金1万2,在我家住了10年,每月给我们1万,前几天我妈80大寿,我买了水果,还有蛋糕,当场宣布了一个重要消息

我妈退休金1万2,在我家住了10年,每月给我们1万,前几天我妈80大寿,我买了水果,还有蛋糕,当场宣布了一个重要消息

晓艾故事汇
2026-08-12 10:09:16
男演员贾冰私人饭局疑被偷拍曝光,喝酒聊天时随口说的粗话,被人掐头去尾发到网上,网友舆论几乎一边倒;律师:感到后怕

男演员贾冰私人饭局疑被偷拍曝光,喝酒聊天时随口说的粗话,被人掐头去尾发到网上,网友舆论几乎一边倒;律师:感到后怕

鲁中晨报
2026-08-11 16:50:04
60岁大爷每月2次性生活,坚持多年后,体检结果让人意外

60岁大爷每月2次性生活,坚持多年后,体检结果让人意外

医学原创故事会
2026-08-06 20:26:05
原来两人是真夫妻!戏里戏外相伴20年,如今搭档赵丽颖终于大火

原来两人是真夫妻!戏里戏外相伴20年,如今搭档赵丽颖终于大火

古事寻踪记
2026-08-11 09:43:32
这才是刚走完长征的毛主席,照片由美国人拍摄,满脸憔悴瘦脱了相

这才是刚走完长征的毛主席,照片由美国人拍摄,满脸憔悴瘦脱了相

大运河时空
2026-07-21 15:50:03
战国七雄都城今何在?楚国国都沦为乡镇,其余六座各有乾坤

战国七雄都城今何在?楚国国都沦为乡镇,其余六座各有乾坤

小豫讲故事
2026-08-10 06:00:29
90%观众是女孩,场外坐满陪跑爹妈:谁在制造这场少年幻梦?

90%观众是女孩,场外坐满陪跑爹妈:谁在制造这场少年幻梦?

陈意小可爱
2026-08-08 14:58:51
谢霆锋的商业帝国,已经这么恐怖了吗?

谢霆锋的商业帝国,已经这么恐怖了吗?

新浪财经
2026-08-11 16:57:22
税收4亿,工资26亿:财政没钱,为什么编内待遇不能动?

税收4亿,工资26亿:财政没钱,为什么编内待遇不能动?

混沌录
2026-07-23 17:11:06
终于熬出头!57岁萨日娜传出好消息,曾被嫌弃长相的她扬眉吐气了

终于熬出头!57岁萨日娜传出好消息,曾被嫌弃长相的她扬眉吐气了

冷紫葉
2026-08-12 14:17:35
女儿学渣科科不及格,身材臃肿啥也不会,结婚后我却彻底服了:有些孩子天生就是这命?

女儿学渣科科不及格,身材臃肿啥也不会,结婚后我却彻底服了:有些孩子天生就是这命?

晓艾故事汇
2026-08-10 08:21:25
颠覆认知!最长寿的运动不是走路跑步,99%的人都练错了!

颠覆认知!最长寿的运动不是走路跑步,99%的人都练错了!

坠入二次元的海洋
2026-08-12 01:08:38
2026-08-12 16:00:49
赛博禅心
赛博禅心
拜AI古佛,修赛博禅心
518文章数 55关注度
往期回顾 全部

科技要闻

Manus第二季,浪子回头

头条要闻

深圳大学斥资5.3亿元 打算买一整栋商品房做学生宿舍

头条要闻

深圳大学斥资5.3亿元 打算买一整栋商品房做学生宿舍

体育要闻

杜兰特,所谓的“联盟小王”

娱乐要闻

老戏骨杨昆两夺金鹰奖,因物业费被告

财经要闻

李嘉诚,再一次大撤退!他嗅到了什么?

汽车要闻

闪充/天神之眼B/云辇-C 2027款海豹06售9.99万元起

态度原创

数码
旅游
本地
公开课
军事航空

数码要闻

Counterpoint:eSSD占NAND需求近半,长存Q2首入出货前三

旅游要闻

像“神仙打翻了炼丹炉”!山东长岛上演绝美朝霞 美到不像人间

本地新闻

黄州一夜,苏轼写给普通人的月光

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

通过“毕业大考” 湖北舰“持证上岗”

无障碍浏览 进入关怀版