b..._微信小程序 button客服用户进去消息推送">
当前位置:   article > 正文

小程序客服消息推送自动回复_微信小程序 消息客服消息

微信小程序 button客服用户进去消息推送

客服消息

在页面使用客服消息

需要将 button 组件 open-type 的值设置为 contact,当用户点击后就会进入客服会话,如果用户在会话中点击了小程序消息,则会返回到小程序,开发者可以通过 bindcontact 事件回调获取到用户所点消息的页面路径 path 和对应的参数 query。

代码示例

"contact" bindcontact="handleContact">button>

Page({
handleContact (e) {console.log(e.detail.path)console.log(e.detail.query)
}
})

返回参数说明
参数类型说明
pathString小程序消息指定的路径
queryObject小程序消息指定的查询参数

后台接入消息服务

用户向小程序客服发送消息、或者进入会话等情况时,开发者填写的服务器配置 URL (如果使用的是云开发,则是配置的云函数)将得到微信服务器推送过来的消息和事件,开发者可以依据自身业务逻辑进行响应。接入和使用方式请参考消息推送。


接收消息和事件

在页面中使用  可以显示进入客服会话按钮。

当用户在客服会话发送消息、或由某些特定的用户操作引发事件推送时,微信服务器会将消息或事件的数据包发送到开发者填写的 URL,如果使用的是云开发,则可以推送到指定的云函数(详情请参考消息推送)。开发者收到请求后可以使用 发送客服消息 接口进行异步回复。

各消息类型的推送JSON、XML数据包结构如下。

文本消息

用户在客服会话中发送文本消息时将产生如下数据包:

XML 格式
         1482048670         1234567890123456
JSON 格式
{  "ToUserName": "toUser",  "FromUserName": "fromUser",  "CreateTime": 1482048670,  "MsgType": "text",  "Content": "this is a test",  "MsgId": 1234567890123456}
参数说明
参数说明
ToUserName小程序的原始ID
FromUserName发送者的openid
CreateTime消息创建时间(整型)
MsgTypetext
Content文本消息内容
MsgId消息id,64位整型

图片消息

用户在客服会话中发送图片消息时将产生如下数据包:

XML 格式
<xml>      <ToUserName>ToUserName>      <FromUserName>FromUserName>      <CreateTime>1482048670CreateTime>      <MsgType>MsgType>      <PicUrl>PicUrl>      <MediaId>MediaId>      <MsgId>1234567890123456MsgId>xml>
JSON 格式
{"ToUserName": "toUser","FromUserName": "fromUser","CreateTime": 1482048670,"MsgType": "image","PicUrl": "this is a url","MediaId": "media_id","MsgId": 1234567890123456}
参数说明
参数说明
ToUserName小程序的原始ID
FromUserName发送者的openid
CreateTime消息创建时间(整型)
MsgTypeimage
PicUrl图片链接(由系统生成)
MediaId图片消息媒体id,可以调用[获取临时素材]((getTempMedia)接口拉取数据。
MsgId消息id,64位整型

小程序卡片消息

用户在客服会话中发送小程序卡片消息时将产生如下数据包:

XML 格式
<xml>  <ToUserName>ToUserName>  <FromUserName>FromUserName>  <CreateTime>1482048670CreateTime>  <MsgType>MsgType>  <MsgId>1234567890123456MsgId>  <Title>Title>  <AppId>AppId>  <PagePath>PagePath>  <ThumbUrl>ThumbUrl>  <ThumbMediaId>ThumbMediaId>xml>
JSON 格式
{"ToUserName": "toUser","FromUserName": "fromUser","CreateTime": 1482048670,"MsgType": "miniprogrampage","MsgId": 1234567890123456,"Title":"title","AppId":"appid","PagePath":"path","ThumbUrl":"","ThumbMediaId":""}
参数说明
参数说明
ToUserName小程序的原始ID
FromUserName发送者的openid
CreateTime消息创建时间(整型)
MsgTypeminiprogrampage
MsgId消息id,64位整型
Title标题
AppId小程序appid
PagePath小程序页面路径
ThumbUrl封面图片的临时cdn链接
ThumbMediaId封面图片的临时素材id

进入会话事件

用户在小程序“客服会话按钮”进入客服会话时将产生如下数据包:

XML 格式
<xml>    <ToUserName>ToUserName>    <FromUserName>FromUserName>    <CreateTime>1482048670CreateTime>    <MsgType>MsgType>    <Event>Event>    <SessionFrom>SessionFrom>xml>
JSON 格式
{"ToUserName": "toUser","FromUserName": "fromUser","CreateTime": 1482048670,"MsgType": "event","Event": "user_enter_tempsession","SessionFrom": "sessionFrom"}
参数说明
参数说明
ToUserName小程序的原始ID
FromUserName发送者的openid
CreateTime事件创建时间(整型)
MsgTypeevent
Event事件类型,user_enter_tempsession
SessionFrom开发者在客服会话按钮设置的 session-from 属性

发送客服消息

当用户和小程序客服产生特定动作的交互时(具体动作列表请见下方说明),微信将会把消息数据推送给开发者,开发者可以在一段时间内(目前为 48 小时)调用客服接口,通过调用 发送客服消息接口 来发送消息给普通用户。此接口主要用于客服等有人工消息处理环节的功能,方便开发者为用户提供更加优质的服务。

目前允许的动作列表如下,不同动作触发后,允许的客服接口下发消息条数和下发时限不同。

用户动作允许下发条数限制下发时限
用户发送消息5 条48 小时

转发客服消息

如果小程序设置了消息推送,普通微信用户向小程序客服发消息时,微信服务器会先将消息 POST 到开发者填写的 URL 上,如果希望将消息转发到网页版客服工具,则需要开发者在响应包中返回 MsgType 为 transfer_customer_service 的消息,微信服务器收到响应后会把当次发送的消息转发至客服系统。

用户被客服接入以后,客服关闭会话以前,处于会话过程中时,用户发送的消息均会被直接转发至客服系统。当会话超过 30 分钟客服没有关闭时,微信服务器会自动停止转发至客服,而将消息恢复发送至开发者填写的 URL 上。

用户在等待队列中时,用户发送的消息仍然会被推送至开发者填写的 URL 上。

这里特别要注意,只针对微信用户发来的消息才进行转发,而对于其他事件(比如用户从小程序唤起客服会话)都不应该转发,否则客服在客服系统上就会看到一些无意义的消息了。

消息转发到网页版客服工具

开发者只要在响应包中返回 MsgType 为 transfer_customer_service 的消息,微信服务器收到响应后就会把当次发送的消息转发至客服系统。

如果是使用自有服务器接收的消息推送,则需返回如下格式的 XML 数据:

<xml>    <ToUserName>ToUserName>    <FromUserName>FromUserName>    <CreateTime>1399197672CreateTime>    <MsgType>MsgType>xml>

参数说明

参数是否必须描述
ToUserName接收方帐号(收到的OpenID)
FromUserName开发者微信号
CreateTime消息创建时间 (整型)
MsgTypetransfer_customer_service

如果是使用云函数接收的消息推送,则需在云函数被客服消息触发后返回同样格式的 JSON 数据:

// ...exports.main = async (event, context) => {  // 判断处理客服消息 ...  // 最后返回 JSON  return {    MsgType: 'transfer_customer_service',    ToUserName: 'touser',    FromUserName: 'fromuser',    CreateTime: parseInt(+new Date / 1000),  }}

客服输入状态

开发者可通过调用 客服输入状态接口,返回客服当前输入状态给用户。

  1. 此接口需要客服消息接口权限。

  2. 如果不满足发送客服消息的触发条件,则无法下发输入状态。

  3. 下发输入状态,需要客服之前 30 秒内跟用户有过消息交互。

  4. 在输入状态中(持续 15 秒),不可重复下发输入态。

  5. 在输入状态中,如果向用户下发消息,会同时取消输入状态。


在客服消息中使用临时素材

开发者可在接收和发送客服消息的过程中获取或上传临时素材。

获取临时素材

接收到用户消息之后,可通过 获取临时素材接口 获取消息中的临时素材

上传临时素材

通过 上传临时素材接口 可以上传临时素材,并在 发送消息接口 中使用。

9c43e21d4a88f63723f4c933d2026cbc.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/341467
推荐阅读
相关标签
  

闽ICP备14008679号