功能定位:关键词提醒到底解决什么问题
LINE 原生客户端没有“关键词高亮推送”开关,但运营者往往需要在千人群里第一时间捕捉“补货”“开团”等字样。借助官方开放的 Messaging API 与 Keep 全文检索,我们可以在不破解客户端的前提下,把含关键词的消息转成二次通知,体验近似系统级提醒。区别在于:Bot 只能把消息转发到指定聊天室,Keep 搜索则需手动触发;两者都不改动客户端 UI,升级后也���会被覆盖。
先决条件与版本前提
截至公开版本 Line 14.8.0,系统级关键词推送依旧缺席,因此下文方案依赖:① 一个已启用 Webhook 的官方 Bot;② 一台可运行 Node.js 或 Python 的云主机/树莓派(仅做转发,性能门槛极低);③ Keep 笔记权限已开启。全程无需 root 或侧载,符合 LINE 服务条款。
最短可达路径:10 分钟完成关键词提醒
1. 申请官方 Bot 并获取 Channel Access Token
进入 LINE Developers Console,新建 Provider 后 Create Channel,选择“Messaging API”。填好资料,在“Channel Access Token”栏点击 Issue,复制以 Bearer 开头的长串字符,脚本中会用到。
2. 把 Bot 拉进目标群组并赋予接收权限
在群聊右上角点击“≡”→成员→邀请好友→搜索 Bot 名称。Bot 必须被设为“可读取消息”角色,否则 Webhook 不会触发;私聊场景则需先加 Bot 为好友。
3. 部署转发脚本(以 Node.js 为例)
// 依赖:npm i @line/bot-sdk axios
const line = require('@line/bot-sdk');
const client = new line.Client({ channelAccessToken: 'YOUR_TOKEN' });
const keyword = '补货'; // 可改成数组支持多词
exports.handler = async (event) => {
event.events.map(e => {
if (e.type === 'message' && e.message.text.includes(keyword)) {
client.pushMessage(e.source.userId || e.source.groupId, {
type: 'text',
text: `关键词「${keyword}」出现:${e.message.text}`
});
}
});
};
保存为 index.js,用 Vercel 或 Railway 一键部署,可获得 HTTPS 地址。回到 Developer Console→Webhook→填入地址并启用“Use webhook”。此后每出现一次“补货”,Bot 会私聊或在群里转发原句。
4. 移动端验证
在群里发一句“今晚补货 20 件”,若配置正确,数秒内即可收到 Bot 私聊提醒。经验性观察:云函数冷启动约 2–4 秒,热调用在亚秒级。
无服务器方案:用 Keep 搜索实现“半自动”提醒
若不想维护云函数,可改用“Keep 笔记 + 关键词搜索”曲线救国。步骤:长按任意消息→保存至 Keep。Keep 在 14.8.0 已支持全文检索,路径:Keep 首页→放大镜→输入关键词→选择“聊天消息”标签。虽然需手动下拉刷新,但零成本且支持离线。
平台差异与回退方案
| 平台 | Webhook 兼容性 | 常见回退点 |
|---|---|---|
| Android 14 | 完全支持 | 若开启“省电→深度睡眠”,可能延迟 5–15 分钟 |
| iOS 17.4 | 完全支持 | 若关闭“后台 App 刷新”,Bot 推送走 APNs,延迟约 10–30 秒 |
| Windows 桌面 | 仅接收,不生成 Webhook | 桌面端无法作为消息源,只能当提醒终端 |
例外与取舍:哪些场景不该用 Bot 提醒
- 高频交易群:日消息量过万时,Bot 推送容易撞 Rate Limit(官方限平均每秒 30 次)。
- 隐私合规群:群公告若已声明“禁止外部 Bot”,擅自拉 Bot 可能导致被踢或举报。
- 完全离线环境:无公网服务器时,Webhook 无法穿透内网,建议改用 Keep 搜索。
故障排查清单
- Bot 不响应:先到 Developer Console→Webhook→点击“Verify”,若返回“invalid signature”说明 token 填错。
- 仅自己收到提醒:检查脚本中 pushMessage 的接收人 ID,应使用 e.source.groupId 而非 userId。
- 关键词匹配失败:确认大小写与全半角;可在脚本里统一 toLowerCase() 或使用正则 /补货|开团/gi。
性能与成本测算
以 Railway 免费套餐为例:每月 500 小时容器时长 + 1 GB 内存,可应付日均 3000 条含关键词消息;若群消息放大 10 倍,容器会休眠重启,冷启动延迟约 3 秒,对“秒杀提醒”类场景可能错过前 30 单。经验性观察:把容器常驻到 5 美元/月档,可将延迟稳定在 1 秒内。
适用/不适用场景速查
| 场景 | 建议方案 | 理由 |
|---|---|---|
| 50 人粉丝群,每日 200 条 | Bot 推送 | 量小,免费额度足够 |
| 公司 2000 人全员群 | Keep 搜索 | 避免 Rate Limit 与合规风险 |
| 跨国采购群,关键词含日文片假名 | Bot 推送 + Unicode 正则 | Keep 搜索不支持日文分词,Bot 可自定义匹配 |
FAQ(结构化数据)
1. 能否直接在微信式“@提醒”里加关键词?
LINE 原生 @ 功能仅支持用户名,不支持关键词;必须借助 Bot 转发实现。
2. 关键词触发会不会被官方判定为 spam?
只要 Bot 不滥发广告,仅做关键词镜像,官方文档未列入违规;但日推送超过 1 万条需申请企业级额度。
3. 桌面端能否反向提醒手机?
桌面端本身不产生 Webhook,但可用同一账号登录 Keep,搜索后右键“发送给自己”,手机端会实时收到。
下一步行动:先跑通最小闭环
1. 用免费云函数部署上述脚本,验证“补货”二字;2. 观察一周内的延迟与误报率;3. 若达标,再逐步扩展到多关键词、多群组。记住:提醒只是手段,别让自己陷入“每响必看”的注意力陷阱。祝你用 LINE 关键词提醒,既抢到限量周边,也不错过真正重要的消息。
