# wechat-timing-message-app **Repository Path**: Lxinz/wechat-timing-message-app ## Basic Information - **Project Name**: wechat-timing-message-app - **Description**: 微信定时消息应用 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-08-02 - **Last Updated**: 2023-08-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: wechaty, Nodejs, cron ## README # 微信定时消息小应用 技术栈:node.js、wechaty、cron、cheerio等。 参考网站:wechaty官网 [https://wechaty.js.org/docs/] ## 实现思路 通过wechaty包搭建微信机器人,使用自己微信账号,登录网页版微信客户端(也是wechaty默认的puppet模式,或者使用wechaty-puppet-wechat4u),登录完成后按照wechaty官方给的教程实现微信消息的拦截,自动回复、定时回复等功能。 定时功能使用cron包进行实现,定好对应的时间和事件即可。 cheerio包主要用于http请求获取每日天气和每日一言的内容,由于网上大部分先有API需要收费,因此可以直接请求有需求内容的HTML页面,通过cheerio爬虫功能获取对应页面标签下的天气或每日一言的内容。 ## 项目结构 机器人实例和相关配置文件放在src/utils/wechat-bot.js中;获取天气内容和每日一言的文件放在src/utils/send-message.js中。 其中将机器人实例导出到src/app.js中,进行机器人实例的启动,也就是执行bot.start()指令。 如果需要修改发送内容和消息,可以查看src/utils/wechat-bot.js文件,可以编辑最下方定时任务中的消息,或者上方的onmessage事件中监听微信消息后再做出回应的消息。 ## 项目启动 初次打开项目时,需要运行下面指令进行相关依赖安装(node > 16.x.x) ``` npm install ``` 在配置完毕后,可以直接使用下方指令运行(我在package.json中添加的运行脚本) ``` npm run dev ``` 运行之后,会在终端出现二维码,扫码登录网页版本微信,之后就可以正常运行微信机器人了。 如果需要持久化运行,可以在第一次扫码登录成功后,会在根路径出现一个*.memory-card.json的文件,之后启动项目会自动登录(长期休眠可能会导致断开连接),这样可以使用pm2去启动项目,建立一个守护进程进行持久化运行项目了。