Appearance
HTTP 服务模式
PyWechat 提供了基于 FastAPI 的 HTTP 服务模式,可以通过 HTTP 接口调用所有微信功能。
启动服务
python
import uvicorn
from example.server import app
uvicorn.run(app, host="0.0.0.0", port=8000)使用流程
1. 设置微信版本
GET /set_wechat_version?version=4.1.2.17&bypass_version=false2. 设置消息回调地址
POST /set_callback_url
Body: "http://your-server.com/callback"所有微信事件都会 POST 到该地址。
3. 接管微信
GET /open或多开:
POST /multi_open
Body: "C:\\Program Files\\Tencent\\Weixin\\Weixin.exe"4. 调用 API
POST /send_text/1
Body: {"to_wxid": "wxid_xxx", "content": "Hello"}完整示例
python
from enum import Enum
from typing import Optional
import requests
import uvicorn
from fastapi import FastAPI, Body, Query
from loguru import logger
logger.remove()
from pywechat import WeChat, events
wechat: Optional[WeChat] = None
callback_url: Optional[str] = None
app = FastAPI(title="PyWechat", description="微信API接口")
@app.get("/set_wechat_version")
def set_wechat_version(version: str, bypass_version: bool = False):
global wechat
wechat = WeChat(version, smart=False, bypass_version=bypass_version)
@wechat.handle(events.ALL_MESSAGE)
def on_message(bot: WeChat, message: dict):
if callback_url:
requests.post(callback_url, json=message)
return {"code": 0, "data": {"version": wechat.version}}
@app.post("/set_callback_url")
def set_callback_url(url: str = Body(...)):
global callback_url
callback_url = url
return {"code": 0, "data": {"callback_url": callback_url}}
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)Swagger 文档
启动 HTTP 服务后,访问 http://localhost:8000/docs 即可查看完整的 Swagger 交互式文档。