代码如下:
import itchat
import json
from itchat.content import *
from apscheduler.schedulers.blocking import BlockingScheduler
# 首先登录微信,此方法调用后屏幕上会弹出一个二维码,使用手机微信扫描该二维码即可登录微信.
"""
hotReload表示热部署,这样调试的时候就不用频繁登录了
"""
itchat.auto_login(hotReload=True)
# 获取好友列表,调用此方法后可得到好友列表
friends = itchat.get_friends()
# 我们可以使用json库将好友列表转换成json格式
print(json.dumps(friends))
# 接下来我们试一下使用脚本给好友发送消息
"""
msg:表示你要发送的消息内容
toUsername:表示你要发送的好友,这里用我自己进行测试,
可以看到这个toUserName的值是和刚才我截图的UserName是相同的,当然这个UserName不是固定的,每一次登录可能都会不一样
"""
itchat.send(msg="这条消息是用python脚本发送的", toUserName="@4a5536adf04c72ddf70279f99e3ffe7f643c299c759ec42ce057358543f3c811")
# 接下来我们进行群发测试,当然所谓群发就是利用循环逐条进行发送,
"""
下面的好友列表是我微信的大号和小号的UserName
"""
group = ["@4a5536adf04c72ddf70279f99e3ffe7f643c299c759ec42ce057358543f3c811",
"@7f25ca9194de3720118ef94ada6552ff8688c5b12c377768a4874a632be7a62f"]
for friend in group:
itchat.send_msg("这条消息是用python脚本进行群发的", friend)
# 接下我们进行自动回复测试,还是利用我自己的号进行测试
@itchat.msg_register(msgType=TEXT, isFriendChat=True, isGroupChat=False, isMpChat=False)
def text_reply(msg):
"""
自动回复信息
msgType表示发过来的消息类型,TEXT表示回复发送过来的文本消息,另外还有图片/视频/音频等.
isFriendChat表示是否回复好友发过来的消息
isGroupChat表示是否回复群消息
isMapChat表示是否回复公众号消息
"""
msg.user.send("我已经收到了您的消息:%s,请等待回复" % msg.text)
# 接下来我们测试定时发送
def timer_task():
itchat.send("每天起床第一句,先给自己打个气", toUserName="@4a5536adf04c72ddf70279f99e3ffe7f643c299c759ec42ce057358543f3c811")
"""
我们利用APScheduler框架进行定时操作,比如想每天早上7点给男神/女神发早安消息,
这里还是以我自己为例.
"""
scheduler = BlockingScheduler()
scheduler.add_job(timer_task, 'cron', day_of_week='1-7', hour=7, minute=0)
scheduler.start()
# 运行程序
itchat.run()
欢迎在评论区留下您的见解~