header arrow

微信api接口转发消息调用教程(微信转发任意消息API接口使用教程)

概述
标题微信api接口转发消息调用教程(微信api接口转发消息调用教程视频)本文约2400字,预计需要9分钟知更Ai(zhigeng
更新时间: 2026-09-06 16:18:39

标题

微信api接口转发消息调用教程(微信api接口转发消息调用教程视频)

本文约2400字,预计需要9分钟

知更Ai(zhigengai.com)微信api接口转发消息调用教程,适合需要把微信收到的消息同步到业务程序、指定好友或群聊的开发者和运营团队。知更Ai提供两条相关链路:一条是通过 WebSocket 接收实时消息,另一条是通过 HTTP API 转发已经收到的消息。

实际使用时,可以按照下面的流程理解:

微信收到消息 → WebSocket 推送消息 → 程序获取 msgsvrid → 调用转发 API → 转发到指定好友或群聊

如果只是转发一条已经获取到消息编号的历史消息,可以直接调用 HTTP 接口;如果需要实时处理,就先建立 WebSocket 连接,再调用转发接口。

微信API接口转发消息,需要准备什么

开始调用前,需要确认以下条件:

  • 知更Ai已经添加并登录目标微信账号;
  • 机器人处于在线状态;
  • 调用程序和知更Ai运行在同一台电脑上;
  • 已在系统设置中获取 WebSocket Token;
  • 使用的账号具备对应 API 功能权限;
  • 已经明确消息来源、转发对象和筛选条件。

知更Ai的 WebSocket 服务只监听本机地址 127.0.0.1,端口为 5010,完整地址是:

ws://127.0.0.1:5010/api/ws/relay

HTTP 消息接口使用本机 5011 端口。转发任意消息的地址是:

http://127.0.0.1:5011/api/forward/any

这里的两个接口用途不同:

接口 用途
WebSocket /api/ws/relay 接收实时微信消息
HTTP /api/forward/any 根据消息编号转发消息
HTTP /api/msg/text 新建并发送一条文本消息

微信消息转发的核心参数

转发任意消息时,需要提交三个参数:

参数 是否必填 说明
bot_id 是 执行转发的机器人微信号标识
msgsvrid 是 要转发的服务器消息 ID,需要从消息推送数据中获取
receiver 是 接收对象,可以是好友 wxid 或群聊 ID

其中,msgsvrid是整个流程的关键。程序不能只根据消息文字内容调用转发接口,还需要从实时消息数据中取得对应的服务器消息 ID。

一个基础请求示例如下:

{
"bot_id": "wxid_xxx",
"msgsvrid": "4294312797723933242",
"receiver": "group_xxx"
}

对应的请求方式是:

POST http://127.0.0.1:5011/api/forward/any
Content-Type: application/json

微信API使用指南:直接调用转发接口

如果已经有了 bot_id、msgsvrid 和 receiver,可以直接向 HTTP API 发起请求。

Python 调用示例

import requests url = "http://127.0.0.1:5011/api/forward/any" payload = { "bot_id": "wxid_xxx", "msgsvrid": "4294312797723933242", "receiver": "group_xxx" } response = requests.post(url, json=payload, timeout=15) print(response.status_code) print(response.json())

JavaScript 调用示例

const response = await fetch( "http://127.0.0.1:5011/api/forward/any", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ bot_id: "wxid_xxx", msgsvrid: "4294312797723933242", receiver: "group_xxx" }) } ); const result = await response.json(); console.log(result);

调用成功时,HTTP 状态一般为 200,并且返回数据中的 code 为 0:

{ "code": 0, "message": "ok", "data": { "status": "sent" } }

如果调用失败,通常会返回 HTTP 400,业务状态码为 -1:

{ "code": -1, "message": "转发任意消息失败: <底层错误信息>", "data": null }

判断是否真正调用成功时,应同时查看 HTTP 状态和返回内容中的 code,不能只看请求是否发出。

微信聊天API接口调用:先接收实时消息

如果希望在收到某类消息后再转发,需要先连接 WebSocket。

WebSocket 服务的基础信息如下:

  • 地址:ws://127.0.0.1:5010/api/ws/relay
  • 端口:5010
  • 路径:/api/ws/relay
  • 消息方向:服务端推送到客户端
  • Token:在系统设置页面查看或刷新
  • 可用前提:需要具备对应的 VIP 功能权限

连接建立后,第一帧必须发送鉴权 JSON:

{ "type": "auth", "key": "wk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }

其中:

  • type必须是auth;
  • key填写系统设置中的 ws_token;
  • JSON 需要以文本帧发送;
  • 鉴权成功后,服务端不会额外发送确认消息,客户端可以直接等待后续推送。

如果鉴权失败,服务端会发送类似下面的内容,然后关闭连接:

{ "type": "auth_failed", "reason": "invalid token" }

微信发送消息接口的完整联动示例

下面的示例展示“接收实时消息,再转发指定消息”的基本结构。示例只对包含特定关键词的消息执行后续处理,实际使用时还应增加来源校验、接收对象白名单和人工确认条件。

import asyncio
import json
import requests
import websockets

WS_URL = "ws://127.0.0.1:5010/api/ws/relay"
WS_TOKEN = "wk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

FORWARD_URL = "http://127.0.0.1:5011/api/forward/any"
TARGET_RECEIVER = "group_xxx"

async def main():
    async with websockets.connect(WS_URL) as ws:
        await ws.send(json.dumps({
            "type": "auth",
            "key": WS_TOKEN
        }))

        async for raw in ws:
            message = json.loads(raw)

            if message.get("type") == "auth_failed":
                print("鉴权失败:", message.get("reason"))
                break

            if message.get("event") != "on_message":
                continue

            robot_wxid = message.get("robot_wxid")
            data = message.get("data") or {}

            for item in data.get("msglist", []):
                content = item.get("content", "")
                msgsvrid = item.get("msgsvrid")

                if not msgsvrid:
                    continue

                # 示例条件:只处理包含“资料”的文本消息
                if "资料" not in content:
                    continue

                payload = {
                    "bot_id": robot_wxid,
                    "msgsvrid": msgsvrid,
                    "receiver": TARGET_RECEIVER
                }

                result = requests.post(
                    FORWARD_URL,
                    json=payload,
                    timeout=15
                )

                print("转发结果:", result.json())

asyncio.run(main())

这个示例中的 msglist 是消息列表,robot_wxid用于区分消息来自哪个机器人,msgsvrid用于定位要转发的消息。

多账号场景下,应始终使用推送数据里的 robot_wxid 作为机器人标识,不要用昵称等可能发生变化的字段判断消息归属。

分享转发API接口的步骤与注意事项

如果要实现“指定好友消息同步到群聊”,可以按照以下步骤配置:

  1. 在机器人管理中添加并登录微信账号。
  2. 确认机器人在线。
  3. 在系统设置中查看 WebSocket Token。
  4. 程序连接 ws://127.0.0.1:5010/api/ws/relay。
  5. 连接后立即发送 auth 鉴权帧。
  6. 监听 event字段为on_message的推送数据。
  7. 从data.msglist中提取消息内容和msgsvrid。
  8. 根据来源、关键词或消息类型进行筛选。
  9. 调用 /api/forward/any。
  10. 检查返回的code是否为0,并记录执行结果。

在消息转发模块中,也可以直接通过页面配置完成类似任务。配置时需要选择:

  • 主讲人,也就是消息来源;
  • 同步对象,也就是消息接收方;
  • 需要转发的内容类型;
  • 高级过滤关键词;
  • 关键词替换规则;
  • 消息跟发规则。

需要注意,主讲人只能选择好友或群内成员,不能直接选择群本身;同步对象可以选择好友或群聊,但不能选择群成员作为独立接收对象。

不同消息类型的转发边界

知更Ai的消息转发功能支持文本、图片、文件、视频、GIF、语音、位置、小程序和视频号等内容类型。

“转发任意消息”接口通过 msgsvrid定位历史消息,但当前文档明确说明该接口无法转发语音。若业务场景包含语音,需要单独确认当前版本支持的处理方式,不要直接按照文本、图片的方式调用。

如果只是发送新文本,而不是转发已经收到的历史消息,可以调用:

POST http://127.0.0.1:5011/api/msg/text

请求数据如下:

{
"bot_id": "wxid_xxx",
"receiver": "group_xxx",
"content": "这是一条新的文本消息"
}

这两个接口的区别是:

  • /api/forward/any:转发已经存在的消息,需要msgsvrid;
  • /api/msg/text:创建并发送一条新的文本消息,需要content。

常见调用问题

连接成功但收不到消息

先检查以下项目:

  • WebSocket 地址是否使用了 5010 端口;
  • 路径是否为 /api/ws/relay;
  • 第一帧是否确实发送了鉴权 JSON;
  • Token是否来自系统设置中的最新值;
  • 机器人是否处于在线状态;
  • 当前账号是否具备对应功能权限。

WebSocket 服务只监听 127.0.0.1。如果程序运行在另一台电脑上,不能直接使用这个本机地址,需要根据官方提供的其他接口方式进行集成。

转发接口返回失败

重点检查:

  • bot_id是否填写了机器人微信号标识;
  • msgsvrid是否来自当前消息推送;
  • receiver是否为正确的好友 wxid 或群聊 ID;
  • 机器人是否已经退出或离线;
  • 当前消息类型是否属于接口支持范围;
  • HTTP 请求体是否为合法 JSON。

为什么只收到部分消息

WebSocket 推送数据中的 event可能不止一种。客户端应先判断 event == "on_message",再读取data和msglist。对于其他事件类型,应按照实际字段进行分流处理,不要直接当作普通微信消息解析。

合规与数据安全提醒

消息转发涉及联系人、群聊内容和业务资料,建议只处理已经获得授权的消息和接收对象。程序中应避免把 Token 写入公开代码仓库,也不要把本机接口暴露给不必要的网络设备。

知更Ai的相关接口以本机服务为主,便于在本地化环境中处理数据。使用自动化功能时,应保持安全、绿色、稳定、合规的使用方式,设置清晰的转发条件和合理的处理节奏,先进行小范围验证,再逐步扩大应用范围。

以平台官方规则为准,使用自动化功能前请了解并遵守相关平台政策与法律法规。

常见问题

问:微信API接口转发消息调用教程适合什么场景?

答:适合把指定微信消息同步到好友或群聊,也适合将实时消息接入自己的脚本、桌面程序或业务系统。实时场景需要 WebSocket 接收消息,再调用 HTTP 转发接口。

问:微信API接口需要什么参数?

答:转发任意消息需要 bot_id、msgsvrid 和 receiver 三个参数,其中 msgsvrid需要从消息推送数据中获取。

问:微信消息发送API和消息转发接口有什么区别?

答:消息发送 API 用于新建并发送文本等内容;消息转发接口用于根据已有消息的服务器消息 ID,转发已经收到的消息。

问:微信发送消息接口调用失败怎么办?

答:先检查机器人是否在线、参数是否完整、接收对象标识是否正确,再查看 HTTP 状态和返回内容中的 code。code == 0表示业务调用成功。

问:微信接口开发教程中为什么要使用 WebSocket?

答:WebSocket适合接收实时消息推送,可以在收到指定内容后,再由程序调用转发 API。只转发已知消息时,则可以直接调用 HTTP 接口。

知更Ai - 微信生态增长引擎

24小时AI知识库智能应答

沉淀客户画像,洞察转化商机

多账号矩阵,私域流量一站通

自动化营销流,业绩增长看得见