wechaty微信机器人收到好友请求时自动同意,并回复一条默认消息,且发一封邮件给管理员

https://wechaty.js.org/zh/docs/howto/event#friendship-event-friend-requests

//微信登录
const chatWx = async (req, res) => {
  try {
    // 扫码
    const onScan = (qrcode, status) => {
      let qrcodeImageUrl
      if (status === ScanStatus.Waiting || status === ScanStatus.Timeout) {
        // 在控制台显示二维码
        qrTerminal.generate(qrcode, { small: true })
        qrcodeImageUrl = [
          'https://api.qrserver.com/v1/create-qr-code/?data=',
          encodeURIComponent(qrcode),
        ].join('')
        console.log('onScan:', qrcodeImageUrl, ScanStatus[status], status)
      } else {
        log.info('onScan: %s(%s)', ScanStatus[status], status)
      }

      console.log(
        `Scan QR Code to login: ${status}\nhttps://wechaty.js.org/qrcode/${encodeURIComponent(
          qrcode
        )}`
      )
      console.log(qrcode)
      res.send({
        code: 200,
        data: {
          qrcode1: `https://wechaty.js.org/qrcode/${encodeURIComponent(
            qrcode
          )}`,
          qrcode,
          qrcodeImageUrl,
        },
        message: '成功',
      })
      return
    }

    // 登录
    const onLogin = (user) => {
      console.log(`${user} has logged in`)
      const date = new Date()
      console.log(`Current time:${date}`)
      console.log(`Automatic robot chat mode has been activated`)
    }

    // 登出
    const onLogout = (user) => {
      console.log(`${user} has logged out`)
      customSendEmail({
        subject: '微信机器人掉线',
        html: `微信机器人掉线`,
      })
    }

    // 收到好友请求
    const onFriendShip = async (friendship) => {
      if (friendship.type() === 2) {
        await friendship.accept()
        // if want to send msg , you need to delay sometimes
        await new Promise((r) => setTimeout(r, 1000))
        await friendship.contact().say(
`免费向微信机器人提问的格式:
gpt,xxx
speech,xxx(文本转语音)
付费后向微信机器人提问的格式:
gpt4,xxx
claude3,xxx
mistral,xxx
mj,xxx(AI绘画)
gemini,xxx
文心一言v4,xxx
upload
uploadForMJ
whisper,xxx(xxx为音频或视频链接,语音转文本)
可以加微信机器人私聊
网站:
https://chat.xutongbao.top
        `)
        console.log('after accept')
        let contact = friendship.contact()
        let alias = (await contact.alias()) || (await contact.name()) // 发消息人昵称

        customSendEmail({
          subject: '微信机器人加入新朋友',
          html: `微信机器人加入新朋友:${alias}`,
        })
      }
    }
    const onMessage = async (msg) => {
      await handleMessage({ msg, bot })
    }

    let bot
    // eslint-disable-next-line
    if (global.isLocal) {
      const CHROME_BIN = process.env.CHROME_BIN
        ? { endpoint: process.env.CHROME_BIN }
        : {}
      // eslint-disable-next-line
      const puppet = new PuppetPadlocal({
        token: 'xxx',
      })

      bot = WechatyBuilder.build({
        name: 'WechatEveryDay',
        puppet: 'wechaty-puppet-wechat4u', // 如果有token,记得更换对应的puppet  免费
        //puppet,  //需要花钱
        //puppet: 'wechaty-puppet-wechat', // 如果 wechaty-puppet-wechat 存在问题,也可以尝试使用上面的 wechaty-puppet-wechat4u ,记得安装 wechaty-puppet-wechat4u
        puppetOptions: {
          uos: true,
          ...CHROME_BIN,
        },
      })
    } else {
      bot = WechatyBuilder.build()
    }
    // 扫码
    bot.on('scan', onScan)
    // 登录
    bot.on('login', onLogin)
    // 登出
    bot.on('logout', onLogout)
    // 收到消息
    bot.on('message', onMessage)
    // 添加好友
    bot.on('friendship', onFriendShip)
    // 启动微信机器人
    bot
      .start()
      .then(() => console.log('Start to log in wechat...'))
      .catch((e) => console.error(e))
  } catch (error) {
    console.log(error)
  }
}

邮件通知

人工智能学习网站

https://chat.xutongbao.top

使用Wechaty框架和GPT API在微信环境中构建一个自动回复机器人,首先你需要做的是: 1. **安装依赖**:确保已经安装了Wechaty库,这是一个JavaScript库,用于微信机器人的开发。你可以通过npm(Node Package Manager)来安装: ```bash npm install wechaty ``` 2. **初始化Wechaty**:创建一个新的Wechaty实例,并处理登录和事件监听: ```javascript const { Wechaty } = require('wechaty'); async function main() { const bot = new Wechaty(); await bot.start(); bot.on('scan', (status, qrCodeUrl) => { console.log(`Waiting for QR code to be scanned, scan ${qrCodeUrl}`); }); bot.on('login', user => { console.log(`User ${user} has logged in`); }); bot.on('message', msg => { // 这里将处理接收到消息 }); } main().catch(err => console.error(err)); ``` 3. **接入GPT API**:由于GPT API并非公开可用的服务,你可能需要先将其集成到你的应用中。这通常涉及向其发送请求并解析返回的数据。你需要一个有效的API密钥和适当的HTTP客户端库(如axios)。 4. **编写自动回复逻辑**:当接收到用户消息,你可以尝试解析消息内容,然后利用GPT API生成响应。例如: ```javascript async function generateResponse(messageContent) { try { const response = await callGPTAPI(messageContent); // 假设callGPTAPI是你实际调用GPT的函数 return response; } catch (error) { console.error('Failed to get response from GPT API:', error); return 'Sorry, I cannot respond at the moment.'; } } bot.on('message', async msg => { const generatedResponse = await generateResponse(msg.text()); msg.say(generatedResponse); }); ``` 5. **注意事项**: - GPT API的调用可能会有延迟,所以你可能需要考虑异步操作。 - 需要注意微信的群聊和私聊规则,确保你的机器人遵守这些规范。 - 如果GPT API需要特定的输入格式,记得适当地清洗和格式化用户的原始消息
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐同保

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值