# appword

- - 1.约定
  - 2.接口
    - 订阅客服
    - 发送消息
    - 客服绑定操作
    - 客服发送消息
    - 客服获取消息记录
    - 客服删除访客列表
    - 访客聊天记录
    - 访客上传文件
    - 客服上传文件
    - 客户留言
    - 客户评论
    - 客户常见问题

## 1.约定

a.数据格式

> socket和http数据接口格式都采用json格式

b.结构

    //1.socket

    {

        "method":"subscribe",//操作

        "data":{//数据

            "client_id":"c0a801ba08fc00000007",

            "client_name":"游客YzH1ai",

            "time":"2019-01-08 09:55:37"

        }

    }

    //2.http

    {

        "status":200,//状态码  一般200为成功  其余除特殊外均为失败

        "msg":"success",//描述

        "data":{//返回信息

            "name":"随机客服",

            "avatar":"xxx"

        }

    }

## 2.接口

### 订阅客服

> 登录ws服务器成功后，进行订阅客服操作

url

`/chat/subscribe`

参数

    code = 'xxxx'     //会话code

    client_id = 'xxxx'  //ws服务器推送的client_id

返回

    {

        "status":200,

        "msg":"success",

        "data":{

            "name":"随机客服",//客服名称

            "avatar":"xxx"//客服头像

        }

    }

### 发送消息

> 发送消息给当前客服

url

`/chat/chat`

参数

    code = 'xxx'     //会话code

    content = '你好'  //发送的内容

返回

    {

        "status":200,

        "msg":"success"

    }

### 客服绑定操作

> 当ws服务器向客服客户端推送bind操作的时候进行

url

`/admin/service/bind`

参数

    client_id = 'xxx'     //客户端id

返回

    {

        "status":200,

        "msg":"success"

    }

### 客服发送消息

> 当客服给对应的用户发送消息行

url

`/admin/service/chat`

参数

    to_id      = 'xxx'//用户的from_id

    type    = 1 //消息类型 1:文字 2：图片 3：声音 4：视频

    content    = '消息内容',//消息内容

返回

    {

        "status":200,

        "msg":"success"

    }

### 客服获取消息记录

> 客服获取与当前用户的消息记录

url

`/admin/service/messageLog`

参数

    to_id = 'xxx'//用户的from_id

    page = 1//页数  不传默认为1

返回

    {

        "status":200,

        "msg":"success",

        "data":[

            {

                "from":"4_201901171724091i0P",//哪个客户端发送的

                "type":1,//消息类型 1文字 2图片 3视频 4声音...

                "create_time":"2019-01-17 17:25:55",//发送时间

                "content":"是不是哦",//发送内容

                "who_is":2//谁发送的 1客服 2用户

            },

            {

                "from":"4_201901171724091i0P",

                "type":1,

                "create_time":"2019-01-17 17:25:55",

                "content":"是不是哦",

                "who_is":2

            }

        ]

    }

### 客服删除访客列表

> 客服删除当前访客列表

url

`/admin/service/delChatList`

参数

    to_id = 'xxx'//用户的from_id

返回

    {

        "status":200,

        "msg":"success",

    }

### 访客聊天记录

> 访客获取聊天记录

url

`/chat/messageLog`

参数

    code = 'xxx'//会话唯一的code

返回

    {

        "status": 200,

        "msg": "success",

        "data": [

            {

                "from": "4_20190122155448Cq9r",

                "type": 1,

                "create_time": "2019-01-22 15:54:57",

                "content": "1232131",

                "who_is": 2

            },

            {

                "from": "19",

                "type": 1,

                "create_time": "2019-01-22 15:55:05",

                "content": "321312",

                "who_is": 1

            }

        ]

    }

### 访客上传文件

> 访客发送图片视频声音等需要的上传文件接口

url
`/upload/upFile`

参数

    type = 'xxx'//文件类型  image:图片 vedio:视频 voice:声音 file:文件

返回

    {
        "status":200,
        "msg":"success",
        "data":{
            "ext":"png",
            "name":"db424020d3764c93fd540c81d226478d.png",
            "path":"http://www.chat.com/uploads/image/20190123/db424020d3764c93fd540c81d226478d.png"
        }
    }

### 客服上传文件

> 客服发送图片视频声音等需要的上传文件接口

url
`/admin/upload/upFile`

参数

    type = 'xxx'//文件类型  image:图片 video:视频 voice:声音 file:文件

返回

    {
        "status":200,
        "msg":"success",
        "data":{
            "ext":"png",
            "name":"db424020d3764c93fd540c81d226478d.png",
            "path":"http://www.chat.com/uploads/image/20190123/db424020d3764c93fd540c81d226478d.png"
        }
    }

### 客户留言

> 当没有客服在线的时候调用留言接口

url
`/chat/note`

参数

    code = 'xxx'//会话唯一的code
    name='xxx'//姓名
    guest_phone = 'xxx'//电话
    message_content = 'xxx'//留言内容
    fiel = 'xxx'//上传的附件地址 非必填

返回

    {
        "status": 200,
        "msg": "success"
    }

### 客户评论

> 客服结束会话后客户进行评论

url
`/chat/comment`

参数

    code = 'xxx'//会话唯一的code
    comment = 1//评论星级 1-5

返回

    {
        "status": 200,
        "msg": "success"
    }

### 客户常见问题

> 客服获取常见问题回答

url
`/chat/question`

参数

    code = 'xxx'//会话唯一的code
    reply_id = 1//常见问题的id

返回

    {
        "status": 200,
        "msg": "success"
    }