IM即时通讯,包含请求IM对话记录、聊天内容、满意度、业务记录、结构化消息等相关文档

请求IM对话记录

请求地址

请求参数

start_time: "2016-08-08 00:00:00", N(非必填) 时间字符串|默认当前开始时间 end_time: "2016-08-08 23:59:59", N(非必填) 时间字符串|默认当前结束时间 page: 1, N(非必填) 页数|默认1页 page_size: 30, N(非必填) |默认30条 sign Y(必填)

sign加密算法:

  1. 按以下参数传递的顺序拼接字符: start_time/end_time/page/page_size sign_str = "start_time=value&end_time=value&page=value&page_size=value"
  2. 以上字符串加入 &shared_secret sign_str = sign_str&shared_secret
  3. 使用 MD5 计算出签字并小写 Digest::MD5.hexdigest(sign_str).downcase

eg start_time=2016-08-01&end_time=2016-08-08&page=1&page_size=30

返回结果

{
    "status": 0,    //0成功 其他失败
    "message": "成功",
    "item": [
        {
            "session_id": 346,              //对话ID
            "sub_session_id": 390,          //子会话ID(唯一标识)
            "note_id": null,                //业务记录ID
            "customer_id": 66,              // 客户ID
            "customer_name": "聂风",         //客户名称
            "agent_id": 2,                  //客服ID
            "agent_nick_name": "Tom",       //客服名称
            "created_at": "2016-08-01T15:39:40.000+08:00",
            "closed_at": "2016-08-04T11:10:23.000+08:00",
            "resp_seconds": null,
            "sustain_seconds": 243043,
            "survey_option_id": 2,
            "platform": "web",              //渠道(web|微信|微博|android|ios|api)
            "web_info": {
                "login_url": null,
                "session_url": null,
                "keyword": null,
                "src": "直接访问",
                "src_url": null,
                "device": "Mac",
                "bowser": "Firefox47.0",
                "generated_channel": "金柚",
                "ip": ""
            },
            "weixin_info": {},
            "weibo_info": {},
            "android_info": {},
            "ios_info": {},
            "api_info": {},
        }
    ],
    "size": 1,
    "total": 1,
    "total_pages": 1
}

请求IM聊天内容

请求地址

请求参数

session_id: 1, Y(必填) 对话记录ID start_time: "2016-08-08 00:00:00", N(非必填) 时间字符串|默认当前开始时间 end_time: "2016-08-08 23:59:59", N(非必填) 时间字符串|默认当前结束时间 page: 1, N(非必填) 页数|默认1页 page_size: 30, N(非必填) |默认30条 sign Y(必填)

sign加密算法:

  1. 按以下参数传递的顺序拼接字符: start_time/end_time/page/page_size sign_str = "start_time=value&end_time=value&page=value&page_size=value"
  2. 以上字符串加入 &shared_secret sign_str = sign_str&shared_secret
  3. 使用 MD5 计算出签字并小写 Digest::MD5.hexdigest(sign_str).downcase

eg start_time=2016-08-01&end_time=2016-08-08&page=1&page_size=30

返回结果

{
    "status": 0,
    "message": "成功",
    "item": [
        {
            "id": 764,
            "created_at": "2016-08-09T15:12:04.000+08:00",
            "sender": "customer",
            "user_id": 66,
            "content": "{\"type\":\"message\",\"data\":{\"content\":\"有新的咨询进来了。\"},\"platform\":\"web\",\"version\":2,\"auto\":true}", //json字符串 type=message|image|
            "session_id": 367,
            "sub_session_id": 390,          //子会话ID(唯一标识)
            "survey_option_id": 3
        }
    ],
    "size": 1,
    "total": 1,
    "total_pages": 1
}

请求IM满意度

请求地址

请求参数

start_time: "2016-08-08 00:00:00", N(非必填) 时间字符串|默认当前开始时间 end_time: "2016-08-08 23:59:59", N(非必填) 时间字符串|默认当前结束时间 page: 1, N(非必填) 页数|默认1页 page_size: 30, N(非必填) |默认30条 sign Y(必填)

sign加密算法:

  1. 按以下参数传递的顺序拼接字符: start_time/end_time/page/page_size sign_str = "start_time=value&end_time=value&page=value&page_size=value"
  2. 以上字符串加入 &shared_secret sign_str = sign_str&shared_secret
  3. 使用 MD5 计算出签字并小写 Digest::MD5.hexdigest(sign_str).downcase

eg start_time=2016-08-01&end_time=2016-08-08&page=1&page_size=30

返回结果

{
    "status": 0,
    "message": "成功",
    "item": [
        {
            "id": 13,
            "created_at": "2016-08-02T16:42:21.000+08:00",
            "session_id": 346,
            "sub_session_id": 390,          //子会话ID(唯一标识)
            "survey_option_id": 2
        }
    ],
    "size": 1,
    "total": 1,
    "total_pages": 1
}

请求IM业务记录

请求地址

请求参数

start_time: "2016-08-08 00:00:00", N(非必填) 时间字符串|默认当前开始时间 end_time: "2016-08-08 23:59:59", N(非必填) 时间字符串|默认当前结束时间 page: 1, N(非必填) 页数|默认1页 page_size: 30, N(非必填) |默认30条 sign Y(必填)

sign加密算法:

  1. 按以下参数传递的顺序拼接字符: start_time/end_time/page/page_size sign_str = "start_time=value&end_time=value&page=value&page_size=value"
  2. 以上字符串加入 &shared_secret sign_str = sign_str&shared_secret
  3. 使用 MD5 计算出签字并小写 Digest::MD5.hexdigest(sign_str).downcase

eg start_time=2016-08-01&end_time=2016-08-08&page=1&page_size=30

返回结果

{
    "status": 0,
    "message": "成功",
    "item": [
        {
            "id": 13,
            "created_at": "2016-08-01T17:45:46.000+08:00",
            "note_type": "im",
            "session_id": 366,
            "sub_session_id": 354, //子会话ID(唯一标识)
            "content": "wewe",
            "custom_fields": [
                [
                    "TextField_2",
                    "eeewe"
                ]
            ]
        }
    ],
    "size": 1,
    "total": 1,
    "total_pages": 1
}

IM结构化消息发送API

请求地址

sign使用说明:

sign页面交互时会提供給客户sign,客户需把接受到的sign传递給消息接口

sign加密算法步骤:

  1. 按以下参数传递的顺序拼接字符: im_sub_session_id/customer_id/agent_id sign_str = "im_sub_session_id=value&customer_id=value&agent_id=value&timestamp=value"
  2. 以上字符串加入 &struct_api_key(密钥的获取 管理员去结构化消息中查看) sign_str = sign_str&struct_api_key
  3. 使用 MD5 计算出签字并小写 Digest::MD5.hexdigest(sign_str).downcase

请求参数

{
  "im_sub_session_id": 对话ID, //必填
  "customer_id": 客户ID, //必填
  "agent_id": 客服ID, //必填
  "jid_resource": "SDK渠道来源", //选填
  "timestamp": 1484273628775, // 必填 13位的当前时间戳
  "sign": "", //必填
  "data": {
      title: String,   //标题
      description: String,  //描述
      img_url: String,   //图片链接
      buttons: [{
        type: "link", 
        text: String,
        value: String
      },{
        type: "phone",
        text: String,
        value: String
      },{
        type: "sdk_callback",
        callback_name: String,   //回调名称
        text: String,
        value: String
      }]
    }
}

返回结果

{
    "code": 1000 //状态码
    "message": "状态说明"
}

code 状态码说明

1000, //成功 2000, //系统错误&缺少参数 2001, //二级域名错误 2002, //签名错,请升级版本后使用 5011, //缺少参数 9010, //发送消息失败 429, //api接口超过请求限制

IM结构化消息iframe嵌入传参

iframe嵌入链接地址

sign加密算法步骤:

  1. 按以下参数传递的顺序拼接字符: im_sub_session_id/customer_id/agent_id sign_str = "im_sub_session_id=value&customer_id=value&agent_id=value&timestamp=value"
  2. 以上字符串加入 &struct_api_key(密钥的获取 管理员去结构化消息中查看) sign_str = sign_str&struct_api_key
  3. 使用 MD5 计算出签字并小写 Digest::MD5.hexdigest(sign_str).downcase

传入参数

{
  "im_sub_session_id": 对话ID,
  "customer_id": 客户ID,
  "agent_id": 客服ID,
  "jid_resource": SDK来源,
  "timestamp": 1484272693, //10位的当前时间戳
  "sign": 签名
}

示例

http://www.xxxx.com?im_sub_session_id=xx&customer_id=xx&agent_id=xx&jid_resource=xx&timestamp=1484272693&sign=xxxxx