使用Python做一个微信机器人

55 篇文章 0 订阅
54 篇文章 0 订阅

简介

该程序将微信的内部功能提取出来,然后在程序里加载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给他发消息即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值