首页 > 人工智能 > 人工智能 > Python|如何自动定时在微信中发送消息?
原文发最开始发在微信公众号了。
地址:
https://mp.weixin.qq.com/s?__biz=MjM5MDE2MDQ0Ng==&mid=2649706793&idx=1&sn=953bb9799c56736bcafb98a189499e29&chksm=be52f27889257b6e2155916467cb4ed1cc5eb8c333f5f32bcd2fa843a31286f229744ed0478a&token=1440813778&lang=zh_CN#rd

新型冠状病毒感染肺炎疫情期间,很多人只能在家里工作、学习,微信作为主要的社交工具,在工作、学习中发挥了越来越重要的作用。微信通讯录中的朋友、同事、领导、同学…越来越多,随之而来的,各种工作任务、学习计划、消息反馈、健康状况…需要在微信中发送消息,尤其是一些重复的消息,需要频繁的发送,工作、学习可能不断被微信中的各类消息打断,自己的时间被不断碎片化,即影响工作学习的效率,也影响心情。
那么,对于 一些重复的,需要频繁发送的消息,有没有办法实现自动发送呢?
下面我就用Python编程语言,做一个简单的Demo演示如何自动发送消息。
先对问题做简单的分析:
在微信中需要发送消息的情形,大致分成两类:群聊天和个人对话;
消息发送的周期,一般有按天发送;按周一至周五发送;按固定时间点发送;极端一点的,按照固定时间间隔发送(比如每2小时、每30分钟、每20秒…)
发送的内容,一般是固定内容,比如:”x月x日,xxx,监测体温xx℃“、”今天课程要开始啦,请同学们提前准备来听课“;还有是针对特定问题的固定答复等。
可能需要用到的库(第三方库需要事先导入),
schedule,是python中有一个轻量级的定时任务调度的库,可以完成每分钟,每小时,每天,周几,特定日期的定时任务;
time, 格式化日期和时间 ;
datetime, 是date和time模块的合集 ;
itchat,是 开源的微信个人号接口 。
下面是一个简单的示例。
import schedule
import time
import itchat
myTpye =0 #0,个人用户;1,群用户
myName='李小' #微信用户名
mytime='13:27' #需要固定发信息的时间
endDay='2020-3-31' #截止日期,即从当前到2020年3月31日,每天13:27发送消息
ss = '今天居家隔离,身体状况良好,体温36.8℃~' #需要发送的文本
now = time.strftime("%d/%m/%Y") #获取日期
itchat.auto_login() #登录微信
def job(): #任务
if myTpye ==0: #个人
user2 = itchat.search_friends(name=myName) #个人
itchat.send(ss,user2[0]['UserName'] ) #发消息
elif myTpye ==1: #群
myroom = itchat.search_chatrooms(name=myName) #群
itchat.send_msg(ss, myroom[0]['UserName']) # 群用户
#列举几种发送的周期,可以根据具体情况选择
schedule.every(10).minutes.do(job) #每隔十分钟发送
schedule.every().day.at(mytime).do(job) #每天的指定时间发送
schedule.every().monday.do(job) #每周一的这个时候发送
schedule.every().wednesday.at(mytime).do(job) #每周三指定时间发送
while now < endDay:#判断有没有到截止日期
schedule.run_pending() #运行所有任务
time.sleep(3) #运行间隔
now = time.strftime("%d/%m/%Y")
itchat.logout() #登出微信
以上只是一个简单的例子,说明一下实现的基本逻辑,当然实际情况可能更复杂一些(比如根据关键词回复、调用第三方机器人回复等),需要灵活处理了。
疫情期间,异地复工需要集中隔离观察,需要天天汇报体温、健康状况…
祝大家身体健康!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31355641/viewspace-2676428/ ,如需转载,请注明出处,否则将追究法律责任。