微信小程序开发文档 微信小程序 send

2024-02-25 开发教程 微信小程序开发文档 匿名 3

customerServiceMessage.send

本接口应在服务器端调用,详细说明参见服务端API。 本接口支持云调用。需开发者工具版本 >= 1.02.1904090(最新稳定版下载
wx-server-sdk >= 0.4.0

发送客服消息给用户。详细规则见 发送客服消息

调用方式:

  • HTTPS 调用
  • 云调用

HTTPS 调用

请求地址

POST https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN

请求参数

属性类型默认值必填说明
access_tokenstring接口调用凭证
touserstring用户的 OpenID
msgtypestring消息类型
textObject文本消息,msgtype="text" 时必填
imageObject图片消息,msgtype="image" 时必填
linkObject图文链接,msgtype="link" 时必填
miniprogrampageObject小程序卡片,msgtype="miniprogrampage" 时必填

msgtype 的合法值

说明最低版本
text文本消息
image图片消息
link图文链接
miniprogrampage小程序卡片

text 的结构

属性类型默认值必填说明
contentstring文本消息内容

image 的结构

属性类型默认值必填说明
media_idstring发送的图片的媒体ID,通过 新增素材接口 上传图片文件获得。

link 的结构

属性类型默认值必填说明
titlestring消息标题
descriptionstring图文链接消息
urlstring图文链接消息被点击后跳转的链接
thumb_urlstring图文链接消息的图片链接,支持 JPG、PNG 格式,较好的效果为大图 640 X 320,小图 80 X 80

miniprogrampage 的结构

属性类型默认值必填说明
titlestring消息标题
pagepathstring小程序的页面路径,跟app.json对齐,支持参数,比如pages/index/index?foo=bar
thumb_media_idstring小程序消息卡片的封面, image 类型的 media_id,通过 新增素材接口 上传图片文件获得,建议大小为 520*416

返回值

Object

返回的 JSON 数据包

属性类型说明
errcodenumber错误码
errmsgstring错误信息

errcode 的合法值

说明最低版本
0请求成功
-1系统繁忙,此时请开发者稍候再试
40001获取 access_token 时 AppSecret 错误,或者 access_token 无效。请开发者认真比对 AppSecret 的正确性,或查看是否正在为恰当的小程序调用接口
40002不合法的凭证类型
40003不合法的 OpenID,请开发者确认 OpenID 是否是其他小程序的 OpenID
45015回复时间超过限制
45047客服接口下行条数超过上限
48001API 功能未授权,请确认小程序已获得该接口

下发消息示例

发送文本消息

{
"touser":"OPENID",
"msgtype":"text",
"text":
{
"content":"Hello World"
}
}

发送文本消息时,支持添加可跳转小程序的文字连接

文本内容...<a href="http://www.qq.com" rel="external nofollow" target="_blank"  rel="external nofollow" target="_blank"  data-miniprogram-appid="appid" data-miniprogram-path="pages/index/index">点击跳小程序</a>
说明:
  1. data-miniprogram-appid 项,填写小程序appid,则表示该链接跳转小程序;
  2. data-miniprogram-path项,填写小程序路径,路径与app.json中保持一致,可带参数;
  3. 对于不支持 data-miniprogram-appid 项的客户端版本(6.5.16 以下),如果有 herf 项,则仍然保持跳 href 中的链接;
  4. 小程序发带小程序文字链的文本消息,data-miniprogram-appid必须是该小程序的appid。

发送图片消息

{
"touser":"OPENID",
"msgtype":"image",
"image": {
"media_id":"MEDIA_ID"
}
}

发送图文链接

每次可以发送一个图文链接

{
"touser": "OPENID",
"msgtype": "link",
"link": {
"title": "Happy Day",
"description": "Is Really A Happy Day",
"url": "URL",
"thumb_url": "THUMB_URL"
}
}

发送小程序卡片

{
"touser":"OPENID",
"msgtype":"miniprogrampage",
"miniprogrampage": {
"title":"title",
"pagepath":"pagepath",
"thumb_media_id":"thumb_media_id"
}
}

云调用

云调用是小程序·云开发提供的在云函数中调用微信开放接口的能力,需要在云函数中通过 wx-server-sdk 使用。

接口方法

openapi.customerServiceMessage.send

需在 config.json 中配置 customerServiceMessage.send API 的权限,详情

请求参数

属性类型默认值必填说明
touserstring用户的 OpenID
msgtypestring消息类型
textObject文本消息,msgtype="text" 时必填
imageObject图片消息,msgtype="image" 时必填
linkObject图文链接,msgtype="link" 时必填
miniprogrampageObject小程序卡片,msgtype="miniprogrampage" 时必填

msgtype 的合法值

说明最低版本
text文本消息
image图片消息
link图文链接
miniprogrampage小程序卡片

text 的结构

属性类型默认值必填说明
contentstring文本消息内容

image 的结构

属性类型默认值必填说明
mediaIdstring发送的图片的媒体ID,通过 新增素材接口 上传图片文件获得。

link 的结构

属性类型默认值必填说明
titlestring消息标题
descriptionstring图文链接消息
urlstring图文链接消息被点击后跳转的链接
thumbUrlstring图文链接消息的图片链接,支持 JPG、PNG 格式,较好的效果为大图 640 X 320,小图 80 X 80

miniprogrampage 的结构

属性类型默认值必填说明
titlestring消息标题
pagepathstring小程序的页面路径,跟app.json对齐,支持参数,比如pages/index/index?foo=bar
thumbMediaIdstring小程序消息卡片的封面, image 类型的 media_id,通过 新增素材接口 上传图片文件获得,建议大小为 520*416

返回值

Object

返回的 JSON 数据包

属性类型说明
errCodenumber错误码
errMsgstring错误信息

errCode 的合法值

说明最低版本
0成功

异常

Object

抛出的异常

属性类型说明
errCodenumber错误码
errMsgstring错误信息

errCode 的合法值

说明最低版本
-1系统繁忙,此时请开发者稍候再试
40001获取 access_token 时 AppSecret 错误,或者 access_token 无效。请开发者认真比对 AppSecret 的正确性,或查看是否正在为恰当的小程序调用接口
40002不合法的凭证类型
40003不合法的 OpenID,请开发者确认 OpenID 是否是其他小程序的 OpenID
45015回复时间超过限制
45047客服接口下行条数超过上限
48001API 功能未授权,请确认小程序已获得该接口

下发消息示例

发送文本消息

const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event, context) => {
try {
const result = await cloud.openapi.customerServiceMessage.send({
touser: 'OPENID',
msgtype: 'text',
text: {
content: 'Hello World'
}
})
return result
} catch (err) {
return err
}
}

发送文本消息时,支持添加可跳转小程序的文字连接

文本内容...<a href="http://www.qq.com" rel="external nofollow" target="_blank"  rel="external nofollow" target="_blank"  data-miniprogram-appid="appid" data-miniprogram-path="pages/index/index">点击跳小程序</a>
说明:
  1. data-miniprogram-appid 项,填写小程序appid,则表示该链接跳转小程序;
  2. data-miniprogram-path项,填写小程序路径,路径与app.json中保持一致,可带参数;
  3. 对于不支持 data-miniprogram-appid 项的客户端版本(6.5.16 以下),如果有 herf 项,则仍然保持跳 href 中的链接;
  4. 小程序发带小程序文字链的文本消息,data-miniprogram-appid必须是该小程序的appid。

发送图片消息

const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event, context) => {
try {
const result = await cloud.openapi.customerServiceMessage.send({
touser: 'OPENID',
msgtype: 'image',
image: {
mediaId: 'MEDIA_ID'
}
})
return result
} catch (err) {
return err
}
}

发送图文链接

每次可以发送一个图文链接

const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event, context) => {
try {
const result = await cloud.openapi.customerServiceMessage.send({
touser: 'OPENID',
msgtype: 'link',
link: {
title: 'Happy Day',
description: 'Is Really A Happy Day',
url: 'URL',
thumbUrl: 'THUMB_URL'
}
})
return result
} catch (err) {
return err
}
}

发送小程序卡片

const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event, context) => {
try {
const result = await cloud.openapi.customerServiceMessage.send({
touser: 'OPENID',
msgtype: 'miniprogrampage',
miniprogrampage: {
title: 'title',
pagepath: 'pagepath',
thumbMediaId: 'thumb_media_id'
}
})
return result
} catch (err) {
return err
}
}