• 一个命令就可启用的微信机器人WhoChat


    WhoChat

    地址:https://github.com/amchii/whochat

    一个依赖于 ComWeChatRobot提供的Com接口的微信机器人,在此之上提供了:

    1. 发布至PyPI,可以一键安装
    2. 命令行支持,可以方便通过命令操作(见下面使用说明)
    3. WebSocket消息推送
    4. JSON-RPC2.0方法调用,支持WebSocket和HTTP
    5. 简单的定时任务支持
    6. 其他

    当前支持微信版本为3.7.0.30

    安装:

    pip install whochat

    若需要HTTP RPC支持,则是

    pip install whochat[httprpc]

    安装完成之后尝试使用whochat命令,理应看到以下输出:

    D:\
    > whochat --help
    Usage: whochat [OPTIONS] COMMAND [ARGS]...
    
      微信机器人
    
      使用<子命令> --help查看使用说明
    
    Options:
      --help  Show this message and exit.
    
    Commands:
      list-wechat       列出当前运行的微信进程
      regserver         注册COM
      serve-message-ws  运行接收微信消息的Websocket服务
      serve-rpc-http    运行微信机器人RPC服务(JSON-RPC2.0), 使用HTTP接口
      serve-rpc-ws      运行微信机器人RPC服务(JSON-RPC2.0), 使用Websocket
      show-rpc-docs     列出RPC接口
      version           显示程序和支持微信的版本信息
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    使用

    1. 列出当前运行的微信进程:
    > whochat list-wechat
    PID: 102852
    启动时间: 2022-08-27T22:22:02.290700
    运行状态: running
    用户名: wxid_hjkafa123a
    ---
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1. 注册COM服务:
    > whochat regserver  # 注册
    > whochat regserver --unreg  # 取消注册
    
    • 1
    • 2

    注册一次就可以使用服务了。

    1. 开启微信消息转发WebSocket服务
    > whochat serve-message-ws --help
    Usage: whochat serve-message-ws [OPTIONS] [WX_PIDS]...
    
      运行接收微信消息的Websocket服务
    
      WX_PIDS: 微信进程PID
    
    Options:
      -h, --host TEXT     Server host.  [default: localhost]
      -p, --port INTEGER  Server port  [default: 9001]
      --help              Show this message and exit.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    该子命令接受一或多个微信PID作为位置参数,可以指定地址

    > whochat serve-message-ws 102852
    注册SIGINT信号处理程序: WechatWebsocketServer.shutdown
    开始运行微信消息接收服务
    开始向客户端广播接收到的微信消息
    开始运行微信Websocket服务,地址为:
    {'wxId': 'wxid_hjkafa123a', 'wxNumber': 'wxid_hjkafa123a', 'wxNickName': 'Cider', 'Sex': '男', 'wxSignature': 'null', 'wxBigAvatar': 'http://wx.qlogo.cn/mmhead/ver_1/R50J6cxxTRzE28sY32DVJibeRUZPiaPotzPVjuReXZsONBdNZXQChSfrK0rDWh8RKS5ibt7VJdK0p22YJrOGjRA051lY9mwkt6ONruLmYTyBAA/0', 'wxSmallAvatar': 'http://wx.qlogo.cn/mmhead/ver_1/R50J6cxxTRzE28sY32DVJibeRUZPiaPotzPVjuReXZsONBdNZXQChSfrK0rDWh8RKS5ibt7VJdK0p22YJrOGjRA051lY9mwkt6ONruLmYTyBAA/132', 'wxNation': 'CN', 'wxProvince': 'Anhui', 'wxCity': 'Hefei', 'PhoneNumber': 'null'}
    开启Robot消息推送
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    默认地址为localhost:9001,连接测试:
    WebSocket测试

    1. 开启WebSocket RPC服务进行方法调用:
    > whochat serve-rpc-ws
    PID: 28824
    注册SIGINT信号处理程序: run..shutdown
    运行微信机器人RPC websocket服务, 地址为
    
    • 1
    • 2
    • 3
    • 4

    默认地址为localhost:9002,测试发送消息给文件传输助手,记得先调用start_robot_service注入dll
    发送消息
    RPC所有方法和参数可通过whochat show-rpc-docs命令查看或者whochat show-rpc-docs --json > docs.json生成JSON文档:

    > whochat show-rpc-docs --help
    Usage: whochat show-rpc-docs [OPTIONS]
    
      列出RPC接口
    
      whochat show-rpc-docs
      or
      whochat show-rpc-docs --json > docs.json
    
    Options:
      --json  JSON文档
      --help  Show this message and exit.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    1. 定时任务:

    在每天上午6点整喊基友起床,同样使用RPC调用schedule_a_job(获取接口文档4),

    {
    
        "jsonrpc": "2.0",
    
        "method": "schedule_a_job",
    
        "params": {
    
            "name": "GETUP",
    
            "unit": "days",
    
            "every": 1,
    
            "at": "08:00:00",
    
            "do": {
    
                "func": "send_text",
    
                "args": [
    
                    102852,
    
                    "jiyou",
    
                    "GET UP!"
    
                ]
    
            },
    
            "description": "",
    
            "tags": [
    
                "jiyou"
    
            ]
    
        },
    
        "id": 4
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45

    欢迎学习交流

  • 相关阅读:
    产品力如何驱动SaaS企业新增长?
    Android11 添加adb后门
    并发中级(第二篇)
    门店管理系统、店铺管理软件不要随便买,看好这几个标准才能放心用!
    LeetCode107. Binary Tree Level Order Traversal II
    收银管理软件如何做好员工管理?
    一位3年Java程序员的面试总结,挂了蚂蚁金服,却有幸拿到美团offer
    Python sorted()函数
    JMeter入门教程(10) --函数助手
    Chapter 2 Gradient Descent
  • 原文地址:https://blog.csdn.net/exmlyshy/article/details/126597347