给“微信群”发送消息

时间:2022-07-02 08:49:14

在微信群里面,“刷屏”的行为是被谴责的。那如果小程硬是要做到“刷屏”的话,有什么办法吗?

显然,靠快速打字是不现实的,用程序来实现才靠谱。

本文介绍如何用程序发送消息到微信群。

参考网页微信的功能,很自然的一个想法就是调用网页微信的接口来实现这个功能。

那么,有没有现成的项目已经实现了对微信接口的封装了呢?

itchat,这是一个开源的python项目,封装了微信接口。通过它,可以实现收发消息、分析好友数据等等有兴趣的事情。

所以,小程就用它来实现消息的发送。

(1)itchat的安装

itchat在github的地址是这个:https://github.com/littlecodersh/ItChat/tree/robot

读者感兴趣的话,可以clone下来研究一下:

git clone https://github.com/littlecodersh/ItChat.git

它的目录结构大概是这样的:
给“微信群”发送消息

但小程是冲着“使用”而来的,所以,只要安装好就行。

安装itchat:

sudo pip install itchat

(2)实现发送消息到群

itchat,使用了网页微信的接口,在做所有事之前,先要登陆微信:

itchat.auto_login(hotReload=True)

hotRelad参数写为True,表示使用热登陆,在一定的时间内不需要重新扫码登陆。

rooms = itchat.get_chatrooms(update=True)
rooms = itchat.search_chatrooms(gname)

第一句是拿到所有微信群,第二句是搜索指定名称的微信群(模糊搜索),这两个函数都返回微信群列表。

微信群的列表,大概是这样的:
给“微信群”发送消息

列表中的每一个元素都是一个Chatroom(一个字典),而每一个Chatroom都有一个UserName,可以给这个UserName发送消息。

itchat.send(msg, toUserName=username)

这个是发送消息的函数,msg为文本消息,toUserName表示往哪里发送,如果不指定就是发给自己(filehelper)。

小程给出大概的代码,里面有两个函数,一个是发消息到特定的微信群,一个是发消息到所有的微信群。程序运行的效果也通过了小程的测试。

给“微信群”发送消息

如果要做到“刷屏”,只需要循环发送消息即可。


总结一下,本文主要是itchat项目的调用,使用它提供的几个函数,实现在电脑上发送消息到微信群的功能。操作简单,难度为低。