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

功能实现用的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连接设备,点亮屏幕,上滑解锁屏幕,启动微信,查找消息接收人,点击进入聊天界面,输入消息内容,点击发送。


脚本写的很简陋,没有更多的封装,没有兼容处理,也没设计重试机制,抛砖引玉。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
