V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gitxuzan
V2EX  ›  程序员

用 py 写了一个简单的 wechat robot

  •  
  •   gitxuzan · 254 天前 · 2403 次点击
    这是一个创建于 254 天前的主题,其中的信息可能已经有所发展或是发生改变。

    wechat_robot

    WeChat 机器人,python + websocket + go 实现 项目地址 : [https://github.com/Xuzan9396/wechat_robot] ( https://github.com/Xuzan9396/wechat_robot)

    步骤

    1. 系统准备: 准备 Windows 系统,可以选择腾讯云服务器,或者 win10 。

    2. 微信版本要求:

      • 使用微信版本 3.7.0.30 。
      • 设置微信不要自动更新。
      • 打开微信,登录到你自己的账号。

      image

      3.7.0.30 版本下载地址: 下载地址

    3. 启动机器人: 可以使用 Python 启动或直接运行 GUI 程序。

      • Python 启动:

        pip install -r requirements.txt 
        python main.py
        
      • 也可以自己打包 gui

      • 打包命令

        pyinstaller -F -w --icon=ui/img/wechat.ico main.py
        
      • 或者使用我打包好的,在项目 wechat_gui 目录可以测试,GUI 程序启动:

        wechat_gui.exe
        
    4. WebSocket 通信配置: GUI 页面是通过 WebSocket 协议传输。

      • WebSocket 端口
      • WebSocket 认证: 默认认证规则,会在你的头部添加 Authorization: Bearer <your_token>
      • WebSocket Path 认证: 默认路径为 /
    5. WebSocket 客户端测试: 可以打开 WebSocket 客户端进行测试,例如发送一条消息,WebSocket 协议如下:

      { 
        "action": "SendText",
        "params": {
          "receiver": "filehelper",
          "msg": "消息发送到文件夹了,请查收"
        }
      }
      
      
    6. 简单的 WebSocket 客户端测试: 使用 Go 编写的简单 WebSocket 客户端进行测试,在 ws_client_go 目录下,或者运行打包的程序

    有 golang 环境的可以直接运行
    go run ws_client.go  -addr="你的服务器地址" -wxid="没有就不需要填写" -ws_auth="你的 ws 服务器认证信息" -ws_path="你的 ws 服务器路径,默认 /"
    例如:
    go run ws_client.go  -addr="xxx.xxx.xxx.xxx:port" -wxid="wxid_xxxxxxxx" -ws_auth="auth123" -ws_path="/"
    
    windows 系统 cmd 运行
    .\ws_client.exe -addr="你的服务器地址" -wxid="没有就不需要填写" -ws_auth="你的 ws 服务器认证信息" -ws_path="你的 ws 服务器路径,默认 /"
    
    mac 系统 arm 架构的
    .\ws_client_darwin_arm64  -addr="你的服务器地址" -wxid="没有就不需要填写" -ws_auth="你的 ws 服务器认证信息" -ws_path="你的 ws 服务器路径,默认 /"
    
    mac 系统 amd64 架构的
    .\ws_client_darwin_amd64 -addr="你的服务器地址" -wxid="没有就不需要填写" -ws_auth="你的 ws 服务器认证信息" -ws_path="你的 ws 服务器路径,默认 /"
    
    • -addr : 你的服务器 ip 地址,如果是本地就输入 127.0.0.1:xxxx
    • path: /
    • -ws_auth: 你的 token,gui 界面的 token
    • wxid: 没有就为空

    演示

    wechat

    其他

    除了发消息,还有其他功能,有需求的去看源码吧

    16 条回复    2023-08-17 10:00:05 +08:00
    npe
        1
    npe  
       254 天前
    这个是什么协议? 新微信号能接入吗?
    dji38838c
        2
    dji38838c  
       254 天前
    会被封号吧?
    微信恶心的很,很容易封号
    gitxuzan
        3
    gitxuzan  
    OP
       254 天前
    wechat hook 实现的,我自己用来当做机器人做通知用处
    gitxuzan
        4
    gitxuzan  
    OP
       254 天前
    @dji38838c hook 注入的还好,我登录了 1 个多月,挺稳定的
    z1829909
        5
    z1829909  
       254 天前
    hi 你好, 请问 hook 部分是什么语言实现的
    gitxuzan
        6
    gitxuzan  
    OP
       254 天前
    hiyoi
        7
    hiyoi  
       254 天前   ❤️ 1
    关键的 CWeChatRobot.exe 没开源这谁敢用啊?
    gitxuzan
        8
    gitxuzan  
    OP
       254 天前
    @hiyoi 依赖库,我不是贴在文档下面吗,全部都是开源的
    githmb
        9
    githmb  
       254 天前
    额,感觉和我这个差不多?
    https://github.com/develon2015/wxbot
    cat
        10
    cat  
       254 天前   ❤️ 1
    @githmb 大佬你这个不错啊,请问到目前一直稳定吗?有没有要求微信什么版本?(能否完善一下 README…
    danbai
        11
    danbai  
       254 天前 via Android
    我这边也参与的一个微信机器人 https://github.com/lich0821/WeChatFerry
    dsn93
        12
    dsn93  
       254 天前
    老哥小心点,微信恶心的很,动不动封你号。
    bybyte
        13
    bybyte  
       254 天前
    这个之前我也做过,但是真不敢用,指不定哪天微信就检测到了给你封了
    0x0208v0
        14
    0x0208v0  
       254 天前
    就喜欢这种很实用的开源!
    hxy100
        15
    hxy100  
       254 天前
    正好有类似的需要,有时间试试看
    githmb
        16
    githmb  
       254 天前
    @cat 之前用过还挺稳的,现在没需求了没测试
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3062 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 08:39 · PVG 16:39 · LAX 01:39 · JFK 04:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.