Loading... ## 克隆开源库 > 原 github 地址 ``` https://github.com/wechaty/getting-started ``` > 需求 node >=16, npm >=7 ``` git clone https://github.com/wechaty/getting-started.git cd getting-started 或者 git clone https://gitee.com/zhMoody/wechart-bot.git 基于 Wechaty + 微信对话开放平台实现 Wechaty: https://wechaty.js.org/ 微信对话开放平台:https://openai.weixin.qq.com/ ``` ## 使用方式 ``` npm install 或 yarn // 修改 index.js 文件开头的常量 token roomName contactName node index.js ``` ## 功能 ``` 1. AI 回复私聊 / 群聊 2. 回复【关键词】自动拉群 ``` ## 核心代码 import axios from "axios" import {WechatyBuilder} from "wechaty" import qrTerm from "qrcode-terminal" // 智能对话平台免费申请:https://openai.weixin.qq.com/ // todo 修改为你自己的 token // 智能对话平台侧边栏 绑定应用 ==>开放接口,可拿到。 显示需要申请,申请一下开放接口就可以拿到了 const token = "xxxx" // todo 仅在以下微信群回复 const roomName = "xxxxx" // todo 仅对以下微信名名称进行自动回复 const contactName = "xxxx" // 获取 API 签名,2小时过期 const {signature} = ( await axios.post(`https://openai.weixin.qq.com/openapi/sign/${token}`, { userid: "moody" }) ).data console.log("获取签名成功", signature) // 初始化机器人 const bot = WechatyBuilder.build({ name: "moody", puppet: "wechaty-puppet-wechat" }) // 扫码登录 bot.on("scan", (qrcode, status) => { qrTerm.generate(qrcode, {small: true}) }) // 登录事件 bot.on("login", (user) => { console.log(`${user} login`) }) // 登出事件 bot.on("logout", (user) => { console.log(`${user} logout`) }) // 自动通过好友 // bot.on('friendship', async function (friendship) { // console.log(`新朋友+1!`) // // switch (friendship.type()) { // case this.Friendship.Type.Receive: // await friendship.accept() // console.log(`接受!`) // break // case this.Friendship.Type.Confirm: // friendship.contact().say(`你好`) // break // } // }) // 处理消息 bot.on("message", async (msg) => { // 获取消息发送人 const contact = msg.talker() // 获取消息内容 const text = msg.text() // 获取群聊信息 const room = msg.room() // 不处理自己的消息 if (msg.self()) { return } // 如果是群聊消息 if (room) { // 群名称 const topic = await room.topic() console.log(`群: ${topic} 用户: ${contact.name()} 信息: ${text}`) // 回复 if (roomName && topic === roomName) { const answer = await getAnswer(contact.id, text) console.log(answer) if (answer) { msg.say(answer, contact) } } } else { // 如果是私聊 console.log(`用户: ${contact.name()} 内容: ${text}`) // 如果昵称为 xxxx1234,则自动回复 if (contactName && contact.name() === contactName) { const answer = await getAnswer(contact.id, text) console.log(answer) msg.say(answer) } } // 发送指定消息自动邀请进群 if (/滴滴滴/.test(text)) { const intoRoom = await bot.Room.find({topic: roomName}) if (intoRoom) { const topic = await intoRoom.topic() await intoRoom.add(contact) await intoRoom.say(`欢迎来到 ${topic}`, contact) } } }) // 启动机器人 bot.start().catch((err) => { console.log(err) }) // 调用 AI 接口,获取答案 async function getAnswer(userid, text) { return ( await axios.post(`https://openai.weixin.qq.com/openapi/aibot/${token}`, { signature: signature, userid: userid, query: text }) ).data?.answer } ## 训练你的机器人,使它更“智能“ <img src='https://s4.ax1x.com/2021/12/21/TMfsnP.png'/> > 创建技能 <img src='https://s4.ax1x.com/2021/12/21/TMhWVK.md.png'/> > 这样我们就可以 输入的时候回答我们自己想要的内容了 <img src='https://s4.ax1x.com/2021/12/21/TM4AaT.md.png'/> ### 最后做完记得 发布一下你的机器人 !> 注意 不要随便乱搞!!!!! 由于微信的接口很容易封号 所以不要乱玩 ,封号了不要找我!!!! END 最后修改:2021 年 12 月 24 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 1 如果觉得我的文章对你有用,请随意赞赏 下一篇 上一篇 发表评论 取消回复 使用cookie技术保留您的个人信息以便您下次快速评论,继续评论表示您已同意该条款 评论 * 私密评论 名称 * 🎲 邮箱 * 地址 发表评论 提交中...