瞎折腾:退役手机跑微信成为通知助手

2025-05-23 10:42:45 2点赞 2收藏 0评论

之前玩的微信助手都被针对了,现在被绿龙制裁了,不能扫码登录其它设备了。这次就直接操作手机发送消息,看看这次怎么制裁吧。

瞎折腾:退役手机跑微信成为通知助手

功能实现用的Python,使用操控UI的方式实现,可能效果不是那么好,如果手机不是很流畅的话,效果可能更让人捉急

瞎折腾:退役手机跑微信成为通知助手

目前是在Windows实现的,效果还是可以的,毕竟是自己搞着玩玩儿,不是为了搞生产力,不需要那么复杂的功能设计。只是开放一个接口,当需要发通知时,请求这个接口把需要的内容通过小号发送给大号。

运行环境

  • Python3,Windows也好,Linux也行,Mac也没问题

    • python依赖:uiautomator2 fastapi uvicorn

    • 使用 pip 安装即可:pip install uiautomator2 fastapi uvicorn -i https://pypi.mirrors.ustc.edu.cn/simple

  • adb 环境

  • 其实用docker跑也没问题,当然需要能访问手机所在的局域网

  • 手机登录了微信

  • 手机开启了开发者选项

  • 手机开启了usb调试

  • 手机关闭了锁屏密码

  • 如果是想通过WiFi连接手机而不是usb,可以开启无线调试,使用配对码配对后连接

  • 配对命令:adb pair ip:port 「使用配对码配对设备会显示ip和端口」

  • 连接命令:adb connect ip:port 「IP地址和端口那里显示的ip端口」

确认环境是否准备好

  • 在终端执行一下命令

瞎折腾:退役手机跑微信成为通知助手瞎折腾:退役手机跑微信成为通知助手

运行Python脚本

# -*- encoding: utf-8 -*- ''' @File : wechat_api.py @Time : 2025/05/22 10:39:24 @Author : leanfly @Version : 1.0 @Contact : ningmuyu@live.com ''' # here put the import lib import uiautomator2 as u2 from uiautomator2 import Direction import time from fastapi import FastAPI import uvicorn ## 配置设备 leshi = '192.168.1.237:41862' # 连接设备 device = u2.connect(leshi) async def send_text_msg(text: str, group_name: str): ''' 使用 uiautomator2 操作微信发送消息 ''' try: # 点亮屏幕 device.screen_on() # 上滑解锁,不要设置密码 device.swipe_ext(Direction.FORWARD) # 打开应用 app_name = 'com.tencent.mm' device.app_start(app_name, wait=True) # 找到群组 group = device.xpath(f'//*[@text="{group_name}"]') print(group.all()) # 发送消息 if group.exists: group.click() time.sleep(5) msg_input = device.xpath('//*[@resource-id="com.tencent.mm:id/d9e"]') if msg_input.exists: msg_input.click() device.send_keys(text) time.sleep(2) # //*[@resource-id="com.tencent.mm:id/bql"] send_buttton = device.xpath('//*[@resource-id="com.tencent.mm:id/bql"]') if send_buttton.exists: send_buttton.click() # device.app_stop(app_name) for i in range(4): print(i) device.press('back') return 'send msg success' # 发送成功 return 'send button disapear' # 没有找到发送按钮 return 'msg input disappear' # 没有找到消息输入框 return 'group name disappear' # 没有找到接收人 except Exception as e: return f'send msg error: {e}' # fastapi 接口 app = FastAPI() @app.post('/send') async def send_text(text: str, group_name: str): resp = await send_text_msg(text, group_name) return resp if __name__ == '__main__': uvicorn.run(app, host='0.0.0.0', port=3332)

这个功能设计其实很简单,使用 fastapi启动一个接口,传入消息内容和消息接收人两个参数。 接口接收到请求后,调用 send_text_msg 这个方法,然后使用uiautomator2连接设备,点亮屏幕,上滑解锁屏幕,启动微信,查找消息接收人,点击进入聊天界面,输入消息内容,点击发送

瞎折腾:退役手机跑微信成为通知助手瞎折腾:退役手机跑微信成为通知助手

脚本写的很简陋,没有更多的封装,没有兼容处理,也没设计重试机制,抛砖引玉。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
2
扫一下,分享更方便,购买更轻松