简介
该程序将微信的内部功能提取出来,然后在程序里加载Python,接着将这些功能导出成库函数,就可以在Python里使用这些函数
程序启动的时候会执行py_code目录下的main.py,类似于你在命令行使用python main.py。
现在会以插件的形式加载py脚本,将脚本放到plugins目录下,忽略掉以_开头的脚本,然后加载所有其他的py脚本
插件脚本分为两类,以msg开头的py文件会在deal_msg.py【处理消息】里加载,其他脚本在main.py里加载。如果需要收到消息做什么事的话就以msg开头命名,不然就随便命名
main.py加载的所有脚本都在同一个线程内运行,如果需要多线程,请在脚本里继承一下threading.Thread, 参考check_friend.py
程序导出了一个函数库可以在Python里使用,库名是gewe,具体函数看下面的功能介绍。该库为其他语言编写,只是导出接口给Python使用
常见开发功能:
好友管理:添加好友、删除好友、修改备注、创建标签、获取好友列表、搜索好友信息
消息管理:发文本消息、图片消息、名片消息、动图表情、小程序、发文件、发送视频、发送URL链接
群管理:自动创群、修改群名称、邀请新成员、踢群成员、获取群列表、发送邀请链接、获取群聊
朋友圈:发送朋友圈、朋友圈点赞、获取朋友圈列表、转发朋友圈、同步朋友圈
基于API您可以创造更多有趣的功能....
常见开发产品:
平台系统类:淘宝客云发单平台、私域营销平台、AI智能客服系统、员工微信监管平台、企业内部批量化管理系统等。
功能类:告警类机器人(例:地震告警、极端天气、服务器宕机、敏感话题、违规内容)、问答类机器人(例:百科,内容查询类),自定义业务类机器人(例:结合场景自定义开发)。
业务类:城市网格员群内问答类、政府内部业务类(例:地震信息通报、城市网格员关键字回复)、群内关键字触发(人工/自动回复),电商发单返利类,私域群营销业务及批量化管理类等
发消息例子
举个例子,如果想每隔五分钟发一次消息,Python代码如下(修改完Python代码,需要关闭软件重新打开才能生效,微信不需要重新登录)
from threading import Timer
def sendmsg(interval):
'''每隔interval秒给文件传输助手发一次消息, filehelper是文件传输助手的wxid'''
wxfunction.SendTextMsg("filehelper", "测试消息!")
timer = Timer(interval, sendmsg, args=(interval,))
timer.start()
sendmsg(5*60)
SendTextMsg就是程序导出的发送文本消息的函数,第一个参数是wxid,这是微信内部使用的唯一id,每个微信号都有对应的wxid,可以通过获取好友列表来获取,第二个参数是发送的消息内容
接收消息例子
收到的消息处理,比如你想收到某人的回复,然后给他发一个消息,就像对接机器人一样的操作方式, 代码主要看deal_msg.py,其中的启动函数如下
def run(self):
while self.event.is_set():
msg = self.wxfunction.popFromMsgQueue()
if not msg:
time.sleep(0.5)
continue
msg_data = json.loads(msg)
msg_struct = ChatMsgStruct(**msg_data)
self._deal_msg(msg_struct)
运行运行
代码很简单,从程序的消息队列里弹出一条json格式的消息,然后转成类,在_deal_msg方法里处理它。转成类的好处是我在类里定义了消息的相应字段, 在写代码时可以使用msg_struct.content来获取,编辑器会自动补全
你只需要在_deal_msg方法里判断发送人的wxid是不是你要回复的那个人,然后调用wxfunction.SendTextMsg给他发消息即可