基于wechaty的定时消息推送(可以哄女朋友)、智能聊天和私人助理

本文介绍了如何利用wechaty库创建一个具备定时消息推送、智能聊天和私人助理功能的项目。通过typescript实现,包括关键词触发功能,如天气查询,以及智能聊天功能,支持群内外对话。此外,还实现了计算特定日期距离当前的天数功能。项目已实现私人助理和定时消息,未来计划用Python重构并扩展更多功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


title: “基于wechaty的定时消息推送(可以哄女朋友)、智能聊天和私人助理”
author: jasonlovesharon
email: 54027901@163.com
tags:

  • nodejs
  • wechaty
  • wechaty-puppet-padplus

前言

  • 自从2017年微信web端API限制以后,itchat等一大批bot歇菜了,一直都在找一款合适的替品
  • 目前来看,大部分都是针对windows微信客户端,基于HOOK的dll注入实现对微信的操控,有一定的封号风险,只能用固定的版本,部署在linux服务器端比较困难,意味着只能一直开着电- -wechaty,支持IPAD,MAC等多种协议,不用去调用WEB网页API,并且可以布署在服务器,满足我所有需求。项目地址
  • 看完官方文档后(token官方介绍), 发现需要申请Token,并且python版本的Token是要付费的,但没有学过typescript,有点想放弃,浏览了一下ding-dong-bot的Example,似乎可以看懂,那就边学习边摸索吧。(ps:后来偶然见发现了另一篇可以使用将token转变一下实现python版wechaty,但此时已经基本用TS写完了,如果想用Python等其他语言可以参考官方文档。)

具备功能

1. 关键词触发功能

1.1 关键词"介绍一下自己"、 “自我介绍一下”、 "你是谁"触发自我介绍
1.2 地名+天气 触发天气查询

2. 智能聊天功能

2.1群外直接聊天
2.2群内成员皆有聊天权限“@bot” 聊天
2.3不会回复 @其他群成员 的消息

实现过程

Talk is cheap,show your code

1. 主程序

import {
    Wechaty, Message, UrlLink,log,} from 'wechaty'
import {
    PuppetPadplus } from 'wechaty-puppet-padplus'
import {
    EventLogger, QRCodeTerminal } from 'wechaty-plugin-contrib'
import {
    WechatyWeixinOpenAI, } from 'wechaty-weixin-openai'
import {
    setSchedule, } from './schedule/index'
import {
    getDay, formatDate,} from './utils/index'
import {
    getOne, getTXweather, getSweetWord,} from './superagent/index'

// 创建微信每日说定时任务
async function initDay() {
   
  console.log(`已经设定每日说任务`);
  setSchedule('0 40 0 * * *', async () => {
   
    console.log('你的贴心小助理开始工作啦!')
    let logMsg
    let contact =
      (await bot.Contact.find({
    name: 'Jason' })) ||
      (await bot.Contact.find({
    alias: 'boss' })) // 获取你要发送的联系人
    let one = await getOne() //获取每日一句
    let weather = await getTXweather() //获取天气信息
    let today = await formatDate(new Date()) //获取今天的日期
    let memorialDay = getDay('2009/08/07') //获取纪念日天数
    let sweetWord = await getSweetWord()
    let str = `${
     today}\n我们相爱的第${
     memorialDay}天\n\n元气满满的一天开始啦,要开心噢^_^\n\n今日天气\n${
     weather.weatherTips}\n${
     
      weather.todayWeather
    }\n每日一句:<br>${
     one}<br><br>每日土味情话:<br>${
     sweetWord}<br><br>————————最爱你的我`
    try {
   
      logMsg = str
      await delay(2000)
      await contact.say(str) // 发送消息
    } catch (e) {
   
      logMsg = e.message
    }
    console.log(logMsg)
  })
}

const padplusToken = '你自己的TOKEN'

const puppet = new PuppetPadplus({
   
  token: padplusToken,
})

const bot = new Wechaty({
   
  name: 'jason-assistant',
  puppet
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值