微信机器人如何设置关键词回复?

99ANYc3cd6 机器人 2

我会以目前最主流和功能最全的 WeChaty 框架为例,因为它支持个人号、公众号、企业微信等多种场景,且生态非常成熟。

微信机器人如何设置关键词回复?-第1张图片-广州国自机器人
(图片来源网络,侵删)

核心概念

关键词回复的核心逻辑是:

  1. 监听消息:机器人需要时刻监听是否有新的消息发送给它。
  2. 获取消息内容:当收到消息时,获取消息的文本内容。
  3. 匹配关键词:将收到的文本内容与你预设的关键词列表进行匹配。
  4. 执行回复:如果匹配成功,就按照预设的规则回复指定的内容。

实现方式(从简单到复杂)

微信内置的“自动回复”功能(最简单)

这是微信官方提供的基础功能,无需任何编程。

  • 适用场景:非常简单的、固定的回复。
  • 优点:零成本,设置简单,官方稳定。
  • 缺点
    • 功能极其有限,只能设置关键词回复和收到消息后自动回复。
    • 无法执行复杂逻辑(如调用API、查询数据库等)。
    • 是固定的,无法动态变化。
  • 设置路径
    1. 打开微信,进入 -> 设置 -> 朋友权限
    2. 找到 自动回复,可以设置 收到消息时的自动回复添加朋友时的自动回复
    3. 关键词回复 中,可以添加关键词和对应的回复内容。

这只是一个“玩具”,无法满足真正的机器人开发需求。


使用现成的机器人平台(推荐新手)

市面上有很多成熟的SaaS平台,你只需要在网页上配置即可实现关键词回复,无需编写代码。

微信机器人如何设置关键词回复?-第2张图片-广州国自机器人
(图片来源网络,侵删)
  • 代表平台
    • 风变编程:提供图形化界面,拖拽即可搭建机器人流程。
    • ChatGPT机器人平台:可以将ChatGPT接入微信,并在此基础上设置关键词触发特定指令。
    • 其他第三方平台:搜索“微信机器人平台”可以找到很多选择。
  • 优点
    • 开箱即用:注册登录后,按照引导绑定你的微信,即可在网页上配置关键词和回复。
    • 可视化操作:通常有流程图或表格界面,非常直观。
    • 稳定可靠:平台负责维护底层技术,你只需要关注业务逻辑。
  • 缺点
    • 可能收费:高级功能或使用量通常需要付费。
    • 功能受限:受限于平台提供的API,无法实现非常定制化的功能。
    • 数据安全:你的聊天数据可能会经过第三方服务器。

自建机器人(功能最强大,推荐开发者)

这是最灵活、功能最强大的方式,你可以完全控制机器人的行为,实现任何你想要的功能,我们将重点介绍这种方法。

准备工作

  • 一台可以24小时开机的服务器:可以是云服务器(如阿里云、腾讯云、Vultr等)或者一台一直开机的电脑。
  • 一个微信号:建议使用一个专门用作机器人的微信号。
  • 编程知识:需要了解 Node.jsJavaScript 基础。
  • 选择一个框架:强烈推荐 WeChaty

使用 WeChaty 实现关键词回复

WeChaty 是一个开源的微信个人号机器人框架,它封装了复杂的底层协议,让你可以专注于业务逻辑。

环境安装

  1. 安装 Node.js:访问 Node.js 官网 下载并安装LTS版本。
  2. 安装 WeChaty CLI:打开终端(命令行工具),运行:
    npm install -g wechaty

编写机器人代码

微信机器人如何设置关键词回复?-第3张图片-广州国自机器人
(图片来源网络,侵删)

创建一个新的文件夹,my-wechat-bot,然后在文件夹中创建一个 bot.js 文件。

下面是一个完整的、带有关键词回复功能的机器人代码示例:

// bot.js
const { Wechaty } = require('wechaty')
const QRCode = require('qrcode') // 用于在终端显示二维码
// 1. 初始化机器人
const bot = new Wechaty({
  name: 'MyKeyWordBot', // 给机器人起个名字
  puppet: 'wechaty-puppet-wechat', // 使用 puppet-wechat 协议(最稳定)
})
// 2. 定义关键词和回复的规则
const keywordReplies = {
  '你好': '你好呀!很高兴认识你!',
  '在吗': '在的,我在这里随时为您服务!',
  '你是谁': '我是一个微信机器人,由 WeChaty 驱动。',
  '天气': '抱歉,我暂时还不能查询天气,但你可以告诉我你想知道哪个城市的天气,我来学习一下!',
  '再见': '拜拜!下次见!',
  // 可以添加更多规则
}
// 3. 监听机器人“准备就绪”事件
bot.on('login', (user) => {
  console.log(`\n🎉 ${user.name()} 登录成功!`)
  console.log('请使用手机微信扫描下方二维码登录:')
})
// 4. 监听机器人“登出”事件
bot.on('logout', (user) => {
  console.log(`\n👋 ${user.name()} 已经登出`)
})
// 5. 监听“扫描二维码”事件,并在终端显示
bot.on('scan', (qrcode, status) => {
  console.log(`\n请扫描二维码登录 (Status: ${status})`)
  console.log(QRCode.toString(qrcode, { type: 'terminal' }, (err, url) => {
    if (err) console.error(err)
    console.log(url)
  }))
})
// 6. 监听“收到消息”事件(这是核心)
bot.on('message', async (message) => {
  // 1. 避免机器人回复自己的消息
  if (message.self()) {
    return
  }
  // 2. 获取消息的文本内容
  const text = message.text()
  // 3. 遍历关键词规则,进行匹配
  for (const keyword in keywordReplies) {
    if (text.includes(keyword)) {
      // 4. 如果匹配到,获取对应的回复内容
      const replyText = keywordReplies[keyword]
      // 5. 发送回复
      await message.say(replyText)
      // 为了避免一个消息触发多个回复,匹配到一个后就可以break了
      break 
    }
  }
})
// 7. 启动机器人
bot.start()
  .then(() => console.log('机器人启动成功...'))
  .catch(err => console.error('启动失败:', err))

代码解析

  • keywordReplies 对象:这是你的“关键词库”,键是关键词,值是你要回复的内容,你可以轻松地修改和扩展它。
  • bot.on('message', ...):这是事件监听的核心,只要有新消息,这个函数就会被触发。
  • message.self():一个重要的判断,防止机器人进入死循环(自己回复自己,然后又触发自己回复)。
  • text.includes(keyword):使用字符串的 includes 方法来判断消息中是否包含关键词,这是最简单的匹配方式。
  • message.say(replyText):发送回复的方法。

运行机器人

  1. 在终端中,进入你的项目文件夹 my-wechat-bot
  2. 运行命令:
    node bot.js
  3. 终端会显示一个二维码,使用你的手机微信扫描这个二维码。
  4. 登录成功后,你的机器人就正式开始工作了!你可以用你的另一个微信好友或小号给它发送预设的关键词,它就会自动回复。

进阶技巧

当你掌握了基础后,可以尝试以下进阶功能:

  1. 精确匹配 vs. 模糊匹配

    • 精确匹配:只有当消息文本和关键词完全一致时才回复,可以使用 text === keyword
    • 模糊匹配:如上面的代码所示,text.includes(keyword) 是模糊匹配,只要包含关键词就触发。
  2. 正则表达式匹配 如果你的匹配规则更复杂(匹配手机号、邮箱、特定格式),可以使用正则表达式。

    // 示例:匹配 "天气 上海" 或 "天气 北京"
    const weatherRegex = /天气 (\S+)/;
    const match = text.match(weatherRegex);
    if (match) {
      const city = match[1];
      await message.say(`正在查询 ${city} 的天气...`); // 这里可以接入天气API
    }
  3. 优先级处理 如果一个消息可能匹配多个关键词(消息是“你好天气”),上面的 break 语句会确保只回复第一个匹配到的,你可以调整 keywordReplies 对象中关键词的顺序,或者设计更复杂的匹配逻辑来处理优先级。

  4. 结合API实现动态回复 关键词回复的最终目的是获取信息,你可以让机器人回复从API获取到的动态数据。

    // 示例:查询IP地址归属地
    const ipRegex = /IP (\d+\.\d+\.\d+\.\d+)/;
    const match = text.match(ipRegex);
    if (match) {
      const ip = match[1];
      // 使用 axios 或 node-fetch 等库调用API
      const response = await axios.get(`http://ip-api.com/json/${ip}`);
      const data = response.data;
      await message.say(`IP ${ip} 的归属地是:${data.city}, ${data.country}`);
    }
方式 优点 缺点 适用人群
微信内置 零成本,设置简单 功能极弱,无法扩展 普通用户,仅用于最简单的告知
现成平台 开箱即用,可视化,稳定 可能收费,功能受限 新手,业务逻辑简单,不想写代码
自建机器人 功能强大,完全自定义,灵活 需要服务器和编程知识 开发者,有复杂或定制化需求的场景

对于任何有志于打造一个真正智能、有用的微信机器人的用户来说,自建机器人(方式三)是必经之路,虽然初期需要一些学习成本,但带来的自由度和功能扩展性是其他方式无法比拟的,从上面的 WeChaty 示例开始,你很快就能上手并创造出属于你自己的强大机器人。

标签: 微信机器人关键词回复设置教程 企业微信机器人关键词回复怎么弄 微信自动回复机器人关键词配置方法

抱歉,评论功能暂时关闭!