微信机器人 定时发送彩虹屁

1,216 阅读2分钟

「时光不负,创作不停,本文正在参加2021年终总结征文大赛

之前周末抽空做了个定时彩虹屁发送程序(传送门🚪🚶),但是弊端是只能发送邮箱(发送微信容易被封)。然后就想着搞一个可以发送微信的程序,然后wechaty这个库就进入了我的视野。这个程序使用微信web api登录,然后套用electron客户端壳,扫码之后拦截请求并添加新的参数到请求头上,这样就不会受网页登录限制,完美使用。

1. 项目地址

github.com/snow-sprite…

2. wechaty相关

官网上写的也比较简单粗暴,这里不做过多介绍 可参照文档

🚀 The World's Shortest ChatBot Code: 6 lines of JavaScript

import { WechatyBuilder } from 'wechaty'

WechatyBuilder.build()  // get a Wechaty instance
  .on('scan', (qrcode, status) => console.log(`Scan QR Code to login: ${status}\nhttps://wechaty.js.org/qrcode/${encodeURIComponent(qrcode)}`))
  .on('login',            user => console.log(`User ${user} logged in`))
  .on('message',       message => console.log(`Message: ${message}`))
  .start()

3. 本程序介绍

定时发送内容到【文件传输助手】,然后再转发到【个人】或者【群消息】 *之所以要先发送到 文件传输助手,是为了先整合一下发送内容 *

示例: WechatIMG5.jpeg

4. 主要功能

- 每日一句祝福语
- 今日天气
- 热点话题
- 简单的机器人聊天

5. 项目配置

module.exports = {
  dailySentenseUrl: `http://wufazhuce.com/`, // 每日一句网页版
  txWeatherUrl: `http://api.tianapi.com/txapi/tianqi/index`, // 天气api
  txNewsTopicUrl: `http://api.tianapi.com/txapi/wxhottopic/index`, // 微信热点话题
  txBotUrl: `http://api.tianapi.com/txapi/robot/index`, // 微信机器人聊天
  txKey: `xxxxx`, // 你自己申请的天行api key填到这里!申请地址:https://www.tianapi.com/source/14f94f80bd
  city: `北京`, // 获取【天气】的所在城市
  autoReply: true, // 是否开启机器人的自动回复,在群内使用机器人每次都需要@才可以使用。

  // 每日消息转发相关
  topics: ['测试群1', '测试群2'], // 待转发群名列表,若不转发则为空[]即可
  friends: [
    { alias: 'Cid', name: 'Cid' },
  ], // 待转发好友列表, alias:备注,name:昵称,若不转发则为空[]即可
  isForwadAll: false, // 是否群发,若为true则上面的配置[friends]不再生效 
  /**
   * 定时转发时间
   * 示例事件为每日早7点
   * 规则:
    *    *    *    *    *    *
    ┬    ┬    ┬    ┬    ┬    ┬
    │    │    │    │    │    │
    │    │    │    │    │    └ day of week (0 - 7) (0 or 7 is Sun)
    │    │    │    │    └───── month (1 - 12)
    │    │    │    └────────── day of month (1 - 31)
    │    │    └─────────────── hour (0 - 23)
    │    └──────────────────── minute (0 - 59)
    └───────────────────────── second (0 - 59, OPTIONAL)
  */
  timing: '0 0 7 * * *',
}

6. 遇到的问题

1)登录之后请求好友列表和群列表会发生返回null或[]的情况,这个问题详见github.com/wechaty/wec… 目前使用的是延时2s在获取列表。 2)经测试,发送群消息时,由于群不够活跃或者删除了群(未保存到通讯录)会导致群消息发送失败。(暂时解决办法:一个人随便在群里发一点内容就行了)

欢迎pr。