「时光不负,创作不停,本文正在参加2021年终总结征文大赛」
之前周末抽空做了个定时彩虹屁发送程序(传送门🚪🚶),但是弊端是只能发送邮箱(发送微信容易被封)。然后就想着搞一个可以发送微信的程序,然后wechaty这个库就进入了我的视野。这个程序使用微信web api登录,然后套用electron客户端壳,扫码之后拦截请求并添加新的参数到请求头上,这样就不会受网页登录限制,完美使用。
1. 项目地址
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. 本程序介绍
定时发送内容到【文件传输助手】,然后再转发到【个人】或者【群消息】 *之所以要先发送到 文件传输助手,是为了先整合一下发送内容 *
示例:

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。