Skip to content

转发视频消息 ​

通过原始 XML 转发已收到的视频消息。

接口地址: POST /sendRecvVideo

前置条件 ​

  • 微信实例已登录,并已获得可用 wId。
  • 接收方 wcId 可以是好友微信 ID,也可以是群 ID。
  • content 需要来自已收到视频消息的回调 XML。
  • 该接口用于复用已收到的视频消息;发送新视频请用发送视频。

请求参数 ​

参数名必选类型说明
wId是string登录实例标识
wcId是string接收方微信 ID 或群 ID
content是string视频消息 XML 内容

响应参数 ​

参数名类型说明
codestring1000 成功;其他值都是失败,通常是 1001
messagestring反馈信息
data.typeint类型
data.msgIdlong消息 ID
data.newMsgIdlong新消息 ID
data.createTimelong发送时间戳(秒)
data.wcIdstring接收方 ID

请求示例 ​

http
POST {BASE_URL}/sendRecvVideo
Authorization: Bearer <你的调用凭证>
Content-Type: application/json

{
 "wId": "0000016f-4621-dde5-0002-390493cab4dc",
 "wcId": "zhongweiyu789",
 "content": "<?xml version=\"1.0\"?>\n<msg>\n\t<videomsg aeskey=\"4f54430bcf53acfe9ef6b5d36d58e9f5\" cdnthumbaeskey=\"4f54430bcf53acfe9ef6b5d36d58e9f5\" cdnvideourl=\"306c020100046530630201000204f032c33602032f55f90204890260b402045e05b42a043e617570766964656f5f666661336336323865323964323566345f313537373433323130345f313533353034323731323139633662336333613434323131350204010400040201000400\" cdnthumburl=\"306c020100046530630201000204f032c33602032f55f90204890260b402045e05b42a043e617570766964656f5f666661336336323865323964323566345f313537373433323130345f313533353034323731323139633662336333613434323131350204010400040201000400\" length=\"7833957\" playlength=\"61\" cdnthumblength=\"12426\" cdnthumbwidth=\"288\" cdnthumbheight=\"512\" fromusername=\"zhongweiyu789\" md5=\"1ed727c57156b5f897e9e05a98912d80\" newmd5=\"d4f771f94ae15c4400b6dccff54068e9\" isad=\"0\" /> -->\n</msg>\n"
}
bash
curl -X POST '{BASE_URL}/sendRecvVideo' \
  -H 'Authorization: Bearer <你的调用凭证>' \
  -H 'Content-Type: application/json' \
  --data-raw '{
 "wId": "0000016f-4621-dde5-0002-390493cab4dc",
 "wcId": "zhongweiyu789",
 "content": "<?xml version=\"1.0\"?>\n<msg>\n\t<videomsg aeskey=\"4f54430bcf53acfe9ef6b5d36d58e9f5\" cdnthumbaeskey=\"4f54430bcf53acfe9ef6b5d36d58e9f5\" cdnvideourl=\"306c020100046530630201000204f032c33602032f55f90204890260b402045e05b42a043e617570766964656f5f666661336336323865323964323566345f313537373433323130345f313533353034323731323139633662336333613434323131350204010400040201000400\" cdnthumburl=\"306c020100046530630201000204f032c33602032f55f90204890260b402045e05b42a043e617570766964656f5f666661336336323865323964323566345f313537373433323130345f313533353034323731323139633662336333613434323131350204010400040201000400\" length=\"7833957\" playlength=\"61\" cdnthumblength=\"12426\" cdnthumbwidth=\"288\" cdnthumbheight=\"512\" fromusername=\"zhongweiyu789\" md5=\"1ed727c57156b5f897e9e05a98912d80\" newmd5=\"d4f771f94ae15c4400b6dccff54068e9\" isad=\"0\" /> -->\n</msg>\n"
}'
python
import requests

url = "{BASE_URL}/sendRecvVideo"
headers = {"Authorization": "Bearer <你的调用凭证>", "Content-Type": "application/json"}
body = r"""{
 "wId": "0000016f-4621-dde5-0002-390493cab4dc",
 "wcId": "zhongweiyu789",
 "content": "<?xml version=\"1.0\"?>\n<msg>\n\t<videomsg aeskey=\"4f54430bcf53acfe9ef6b5d36d58e9f5\" cdnthumbaeskey=\"4f54430bcf53acfe9ef6b5d36d58e9f5\" cdnvideourl=\"306c020100046530630201000204f032c33602032f55f90204890260b402045e05b42a043e617570766964656f5f666661336336323865323964323566345f313537373433323130345f313533353034323731323139633662336333613434323131350204010400040201000400\" cdnthumburl=\"306c020100046530630201000204f032c33602032f55f90204890260b402045e05b42a043e617570766964656f5f666661336336323865323964323566345f313537373433323130345f313533353034323731323139633662336333613434323131350204010400040201000400\" length=\"7833957\" playlength=\"61\" cdnthumblength=\"12426\" cdnthumbwidth=\"288\" cdnthumbheight=\"512\" fromusername=\"zhongweiyu789\" md5=\"1ed727c57156b5f897e9e05a98912d80\" newmd5=\"d4f771f94ae15c4400b6dccff54068e9\" isad=\"0\" /> -->\n</msg>\n"
}"""

resp = requests.post(url, headers=headers, data=body.encode("utf-8"))
print(resp.text)
java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

String url = "{BASE_URL}/sendRecvVideo";
String body = "{\n" +
    " \"wId\": \"0000016f-4621-dde5-0002-390493cab4dc\",\n" +
    " \"wcId\": \"zhongweiyu789\",\n" +
    " \"content\": \"<?xml version=\\\"1.0\\\"?>\\n<msg>\\n\\t<videomsg aeskey=\\\"4f54430bcf53acfe9ef6b5d36d58e9f5\\\" cdnthumbaeskey=\\\"4f54430bcf53acfe9ef6b5d36d58e9f5\\\" cdnvideourl=\\\"306c020100046530630201000204f032c33602032f55f90204890260b402045e05b42a043e617570766964656f5f666661336336323865323964323566345f313537373433323130345f313533353034323731323139633662336333613434323131350204010400040201000400\\\" cdnthumburl=\\\"306c020100046530630201000204f032c33602032f55f90204890260b402045e05b42a043e617570766964656f5f666661336336323865323964323566345f313537373433323130345f313533353034323731323139633662336333613434323131350204010400040201000400\\\" length=\\\"7833957\\\" playlength=\\\"61\\\" cdnthumblength=\\\"12426\\\" cdnthumbwidth=\\\"288\\\" cdnthumbheight=\\\"512\\\" fromusername=\\\"zhongweiyu789\\\" md5=\\\"1ed727c57156b5f897e9e05a98912d80\\\" newmd5=\\\"d4f771f94ae15c4400b6dccff54068e9\\\" isad=\\\"0\\\" /> -->\\n</msg>\\n\"\n" +
    "}";

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder(URI.create(url))
    .header("Authorization", "Bearer <你的调用凭证>")
    .header("Content-Type", "application/json")
    .POST(HttpRequest.BodyPublishers.ofString(body))
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
php
<?php

$url = '{BASE_URL}/sendRecvVideo';
$body = <<<'JSON'
{
 "wId": "0000016f-4621-dde5-0002-390493cab4dc",
 "wcId": "zhongweiyu789",
 "content": "<?xml version=\"1.0\"?>\n<msg>\n\t<videomsg aeskey=\"4f54430bcf53acfe9ef6b5d36d58e9f5\" cdnthumbaeskey=\"4f54430bcf53acfe9ef6b5d36d58e9f5\" cdnvideourl=\"306c020100046530630201000204f032c33602032f55f90204890260b402045e05b42a043e617570766964656f5f666661336336323865323964323566345f313537373433323130345f313533353034323731323139633662336333613434323131350204010400040201000400\" cdnthumburl=\"306c020100046530630201000204f032c33602032f55f90204890260b402045e05b42a043e617570766964656f5f666661336336323865323964323566345f313537373433323130345f313533353034323731323139633662336333613434323131350204010400040201000400\" length=\"7833957\" playlength=\"61\" cdnthumblength=\"12426\" cdnthumbwidth=\"288\" cdnthumbheight=\"512\" fromusername=\"zhongweiyu789\" md5=\"1ed727c57156b5f897e9e05a98912d80\" newmd5=\"d4f771f94ae15c4400b6dccff54068e9\" isad=\"0\" /> -->\n</msg>\n"
}
JSON;

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer <你的调用凭证>',
    'Content-Type: application/json',
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;

成功响应 ​

json
{
 "code": "1000",
 "message": "转发视频消息成功",
 "data": {
 "type": null,
 "msgId": 697760525,
 "newMsgId": 5163231378817832136,
 "createTime": null,
 "wcId": null
 }
}

错误响应 ​

json
{
 "message": "失败",
 "code": "1001",
 "data": null
}

使用建议 ​

  • 建议保存原始视频消息 XML,转发时直接使用,避免视频 CDN 字段缺失。
  • 视频 CDN 资源可能过期,过期后建议重新发送新视频或重新获取资源。
  • 转发成功后保存 msgId、newMsgId、createTime,便于撤回或追踪。