customerServiceMessage.send

本接口应在服务器端调用,详细说明参见服务端API

本接口支持云调用。需开发者工具版本 >= 1.02.1904090(最新稳定版下载),wx-server-sdk >= 0.4.0

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

调用方式:

HTTPS 调用

请求地址

  1. 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 功能未授权,请确认小程序已获得该接口

下发消息示例

发送文本消息

  1. {
  2. "touser":"OPENID",
  3. "msgtype":"text",
  4. "text":
  5. {
  6. "content":"Hello World"
  7. }
  8. }

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

  1. 文本内容...<a href="http://www.qq.com" 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。

发送图片消息

  1. {
  2. "touser":"OPENID",
  3. "msgtype":"image",
  4. "image": {
  5. "media_id":"MEDIA_ID"
  6. }
  7. }

发送图文链接

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

  1. {
  2. "touser": "OPENID",
  3. "msgtype": "link",
  4. "link": {
  5. "title": "Happy Day",
  6. "description": "Is Really A Happy Day",
  7. "url": "URL",
  8. "thumb_url": "THUMB_URL"
  9. }
  10. }

发送小程序卡片

  1. {
  2. "touser":"OPENID",
  3. "msgtype":"miniprogrampage",
  4. "miniprogrampage": {
  5. "title":"title",
  6. "pagepath":"pagepath",
  7. "thumb_media_id":"thumb_media_id"
  8. }
  9. }

云调用

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

接口方法

  1. 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 功能未授权,请确认小程序已获得该接口

下发消息示例

发送文本消息

  1. const cloud = require('wx-server-sdk')
  2. cloud.init({
  3. env: cloud.DYNAMIC_CURRENT_ENV,
  4. })
  5. exports.main = async (event, context) => {
  6. try {
  7. const result = await cloud.openapi.customerServiceMessage.send({
  8. touser: 'OPENID',
  9. msgtype: 'text',
  10. text: {
  11. content: 'Hello World'
  12. }
  13. })
  14. return result
  15. } catch (err) {
  16. return err
  17. }
  18. }

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

  1. 文本内容...<a href="http://www.qq.com" 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。

发送图片消息

  1. const cloud = require('wx-server-sdk')
  2. cloud.init({
  3. env: cloud.DYNAMIC_CURRENT_ENV,
  4. })
  5. exports.main = async (event, context) => {
  6. try {
  7. const result = await cloud.openapi.customerServiceMessage.send({
  8. touser: 'OPENID',
  9. msgtype: 'image',
  10. image: {
  11. mediaId: 'MEDIA_ID'
  12. }
  13. })
  14. return result
  15. } catch (err) {
  16. return err
  17. }
  18. }

发送图文链接

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

  1. const cloud = require('wx-server-sdk')
  2. cloud.init({
  3. env: cloud.DYNAMIC_CURRENT_ENV,
  4. })
  5. exports.main = async (event, context) => {
  6. try {
  7. const result = await cloud.openapi.customerServiceMessage.send({
  8. touser: 'OPENID',
  9. msgtype: 'link',
  10. link: {
  11. title: 'Happy Day',
  12. description: 'Is Really A Happy Day',
  13. url: 'URL',
  14. thumbUrl: 'THUMB_URL'
  15. }
  16. })
  17. return result
  18. } catch (err) {
  19. return err
  20. }
  21. }

发送小程序卡片

  1. const cloud = require('wx-server-sdk')
  2. cloud.init({
  3. env: cloud.DYNAMIC_CURRENT_ENV,
  4. })
  5. exports.main = async (event, context) => {
  6. try {
  7. const result = await cloud.openapi.customerServiceMessage.send({
  8. touser: 'OPENID',
  9. msgtype: 'miniprogrampage',
  10. miniprogrampage: {
  11. title: 'title',
  12. pagepath: 'pagepath',
  13. thumbMediaId: 'thumb_media_id'
  14. }
  15. })
  16. return result
  17. } catch (err) {
  18. return err
  19. }
  20. }