微信群

群二维码生效时增加好友拉群

文章博客地址,查看源码

前置条件

  • 你须要有openai的账号
  • 创立账号时很多国家的手机号是不容许注册的,能够再一些网站购买容许注册的手机号,能够再这个网站,购买(须要充值 2 美元)
  • 有了账号之后你须要在 openAI 创立 token(这里 token 基本上过期工夫只有一天,所以每天都须要创立新的 token 后粘贴到代码上重启我的项目)
  • 还须要有一台登录了微信的手机(并且这个微信是绑定过手机号,用过一段时间的,否则代码登录可能发不出音讯,在代码登录之后手机的微信不能退出,就像 PC 登录了微信,手机退出时电脑也会主动退出)

装置依赖

npm i wechatynpm i axios

登录微信

输入的链接浏览器关上,微信扫码登录即可。

import { WechatyBuilder } from "wechaty"const apiKey = "你的openAI key"// 调用 ChatGPT4 模型const model = "gpt-3.5-turbo"let username = ""const wechaty = WechatyBuilder.build()wechaty  .on("scan", (qrcode, status) =>    console.log(      `二维码${status}: https://wechaty.js.org/qrcode/${encodeURIComponent(        qrcode      )}`    )  )  .on("login", user =>    console.log(`用户名 ${(username = user.name() || "")} 登录胜利`)  )

群聊主动@回复

以下实现群@以后登录的用户是,@回复对方

.on("message", async (message) => {    // 如果是群聊音讯    if (message.room()) {      // const type = message.type();      const msg = message.text().replace(`@${username}`, "");      const room = await message.room();      const isMentioned = await message.mentionSelf();      const contact = message.talker();      const topic = await room.topic();      // const includes = [""]      if (isMentioned) {        try {          const res = await axios({            method: "post",            url: "https://api.openai.com/v1/chat/completions",            headers: {              Authorization: "Bearer " + apiKey,              "Content-Type": "application/json",            },            data: JSON.stringify({              model,              messages: [{ role: "user", content: msg }],            }),            timeout: 0,          });          console.log(            `群号: ${topic}, 用户名: ${contact.name()}, 音讯: ${msg},答复: ${              res.data.choices[0].message.content            }`          );          room.say(`@${contact.name()} ${res.data.choices[0].message.content}`);        } catch (e) {          console.log("报错: ", e.message);          room.say(`@${contact.name()} 报错了...`);        }      }    }  });// 事件监听实现后开始启动wechaty.start();

<script setup lang="ts">
import CommunicationGroup from "../../../layout/CommunicationGroup.vue"
</script>