Nivelle 开拓视野冲破艰险看见世界 身临其境贴近彼此感受生活

微信服务号开发之客服消息

2017-09-02
nivelle

定义:当用户和公众号产生特定动作的交互时,微信将会把消息推送给开发者,开发者可以在一段时间内(目前48h)调用客服接口,通过POST一个json数据包来发送消息给普通用户.

目前允许的动作列表如下:

  • 用户发送消息
  • 点击自定义菜单(仅有点击推事件,扫码事件,扫码事件且弹出”消息接收中”提示框这三类型是会触发客服接口)
  • 关注公众号
  • 扫描二维码
  • 支付成功
  • 用户维权

客服账号管理

开发者在根据开发文档的要求完成开发后,使用微信与公众号客服沟通,公众号使用不同的客服账号进行回复后,用户可以看到对应的客服头像和昵称.必须先在公众平台官网为公众号设置微信号后才能使用该能力.

添加客服帐号/修改客服账号/删除客服帐号

添加客服帐号接口地址:https://api.weixin.qq.com/customservice/kfaccount/add?access_token=ACCESS_TOKEN(开发者可以通过本接口为公众号添加客服账号,每个公众号最多添加10个客服账号。) 修改客服账号接口地址:https://api.weixin.qq.com/customservice/kfaccount/update?access_token=ACCESS_TOKEN 删除客服帐号接口地址:https://api.weixin.qq.com/customservice/kfaccount/del?access_token=ACCESS_TOKENa

POST数据示例如下:


{
     "kf_account" : "test1@test",
     "nickname" : "客服1",
     "password" : "pswmd5",
}


返回说明(正确时的JSON返回结果):

{
     "errcode" : 0,
     "errmsg" : "ok",
}

设置客服帐号的头像

开发者可调用本接口来上传图片作为客服人员的头像,头像图片文件必须是jpg格式,推荐使用640*640大小的图片以达到最佳效果。

接口地址:http://api.weixin.qq.com/customservice/kfaccount/uploadheadimg?access_token=ACCESS_TOKEN&kf_account=KFACCOUNT

调用示例:使用curl命令,用FORM表单方式上传一个多媒体文件,curl命令的具体用法请自行了解

获取所有客服账号

接口地址:https://api.weixin.qq.com/cgi-bin/customservice/getkflist?access_token=ACCESS_TOKEN

客服接口发消息

接口地址:https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN

  • 发消息文本格式如下:
{
    "touser":"OPENID",
    "msgtype":"text",
    "text":
    {
         "content":"Hello World"
    }
}

  • 发送图片消息
{
    "touser":"OPENID",
    "msgtype":"image",
    "image":
    {
      "media_id":"MEDIA_ID"
    }
}


  • 发送语音消息

{
    "touser":"OPENID",
    "msgtype":"voice",
    "voice":
    {
      "media_id":"MEDIA_ID"
    }
}
  • 发送视频消息

{
    "touser":"OPENID",
    "msgtype":"video",
    "video":
    {
      "media_id":"MEDIA_ID",
      "thumb_media_id":"MEDIA_ID",
      "title":"TITLE",
      "description":"DESCRIPTION"
    }
}


  • 发送音乐消息
{
    "touser":"OPENID",
    "msgtype":"music",
    "music":
    {
      "title":"MUSIC_TITLE",
      "description":"MUSIC_DESCRIPTION",
      "musicurl":"MUSIC_URL",
      "hqmusicurl":"HQ_MUSIC_URL",
      "thumb_media_id":"THUMB_MEDIA_ID" 
    }
}

  • 图文消息(点击跳转到外链)图文消息条数限制在8条以内,若超过则无响应.
{
    "touser":"OPENID",
    "msgtype":"news",
    "news":{
        "articles": [
         {
             "title":"Happy Day",
             "description":"Is Really A Happy Day",
             "url":"URL",
             "picurl":"PIC_URL"
         },
         {
             "title":"Happy Day",
             "description":"Is Really A Happy Day",
             "url":"URL",
             "picurl":"PIC_URL"
         }
         ]
    }
}


  • 图文消息(点击跳转到图文消息页面)图文消息条数限制在8条以内,注意,如果图文数超过8,则将会无响应。
{
    "touser":"OPENID",
    "msgtype":"mpnews",
    "mpnews":
    {
         "media_id":"MEDIA_ID"
    }
}

  • 发送卡券
{
  "touser":"OPENID", 
  "msgtype":"wxcard",
  "wxcard":{              
           "card_id":"123dsdajkasd231jhksad"        
            },
}

客服输入状态

开发者可以通过调用”客服输入状态”接口,返回客服当前输入状态给用户.此接口需要客服消息接口权限

  • 如果不满足发送客服消息的触发条件,则无法下发输入状态
  • 下发输入状态,需要客服之前30秒内根用户有过消息交互
  • 在输入状态中(持续15s),不可重复下发输入态
  • 在输入状态中,如果向用户下发消息,会同时取消输入状态

接口调用请求说明:

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

参数:

参数 描述
access_token 调用接口凭证
toUser 用户openId
command “Typing”:对用户下发“正在输入”状态 ,”CancelTyping”:取消对用户的”正在输入”状态

评论