Appearance
发送图片
通过图片 URL 向好友或群聊发送图片消息。平台会先下载图片资源,再转发到微信。
接口地址: POST /sendImage2
媒体素材复用
在接收人已获得必要告知并同意的场景中,可先获取素材 XML,再使用转发接口减少重复上传。详见 已授权场景的媒体素材复用。
前置条件
- 微信账号已登录,并已获得可用的
wId。 content必须是公网可访问的图片 URL。- 图片资源服务器需要稳定,下载速度会影响发送速度。
请求参数
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| wId | 是 | string | 登录实例标识 |
| wcId | 是 | string | 接收方微信 ID 或群 ID(如 24187765053@chatroom) |
| content | 是 | string | 图片 URL。图片不能超过 5M,超过返回「图片不可超过5M,请压缩」 |
响应参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | string | 1000 成功;其他值都是失败,通常是 1001 |
| message | string | 反馈信息 |
| data.type | int | 消息类型 |
| data.msgId | long | 消息 ID |
| data.newMsgId | long | 新消息 ID |
| data.createTime | long | 发送时间戳(秒) |
| data.wcId | string | 接收方 ID |
请求示例
http
POST {BASE_URL}/sendImage2
Authorization: Bearer <你的调用凭证>
Content-Type: application/json
{
"wId": "0000016e-63eb-f319-0001-ed01076abf1f",
"wcId": "LoChaX",
"content": "http://photocdn.sohu.com/20120323/Img338614056.jpg"
}bash
curl -X POST '{BASE_URL}/sendImage2' \
-H 'Authorization: Bearer <你的调用凭证>' \
-H 'Content-Type: application/json' \
--data-raw '{
"wId": "0000016e-63eb-f319-0001-ed01076abf1f",
"wcId": "LoChaX",
"content": "http://photocdn.sohu.com/20120323/Img338614056.jpg"
}'python
import requests
url = "{BASE_URL}/sendImage2"
headers = {"Authorization": "Bearer <你的调用凭证>", "Content-Type": "application/json"}
body = """{
"wId": "0000016e-63eb-f319-0001-ed01076abf1f",
"wcId": "LoChaX",
"content": "http://photocdn.sohu.com/20120323/Img338614056.jpg"
}"""
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}/sendImage2";
String body = "{\n" +
" \"wId\": \"0000016e-63eb-f319-0001-ed01076abf1f\",\n" +
" \"wcId\": \"LoChaX\",\n" +
" \"content\": \"http://photocdn.sohu.com/20120323/Img338614056.jpg\"\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}/sendImage2';
$body = <<<'JSON'
{
"wId": "0000016e-63eb-f319-0001-ed01076abf1f",
"wcId": "LoChaX",
"content": "http://photocdn.sohu.com/20120323/Img338614056.jpg"
}
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": 697760516,
"newMsgId": 901023126355472137,
"createTime": 0,
"wcId": "LoChaX"
}
}错误响应
json
{
"message": "失败",
"code": "1001",
"data": null
}使用建议
- 图片 URL 建议放在稳定 CDN,并确保外网可直接访问。
- 批量发送同一图片时,先获取素材 XML,再使用转发接口,减少重复上传。
- 对营销图片建议控制发送频率,避免短时间大量重复发送。
验证与排查
| 场景 | 处理方式 |
|---|---|
| 图片发送慢 | 先用稳定公网图片测试,确认是否为资源服务器下载慢 |
| 图片发送失败 | 确认 URL 可公网访问,且返回真实图片内容 |
| 多账号发送同图 | 使用转发方案,不要让每个账号重复上传 |
| 疑似风控 | 降低频率,减少相同图片的批量发送 |