目录

实时消息回调


常用场景

实时消息回调经常用在应用需要针对用户发送的消息进行处理的场景。比如:

注:如果您对聊天消息没有实时性需求,可以直接通过免费的聊天记录拉取REST API 获取聊天记录,无需使用实时消息回调。

开通回调

实时消息回调属于增值服务,请联系环信的商务经理询问价格,付费开通。

APP 需要提供以下配置信息:

消息类型描述:

chat_type的选择:

消息回调接口参数说明

目前只支持 HTTP 方式的回调,采用 POST 方式,正文部分为 JSON 格式的字符串,字符集为 UTF-8。

回调时,会对发送的正文做 MD5 签名,APP 返回的响应也需要做 MD5 签名。环信这边 MD5 使用的是 org.apache.commons.codec.digest.DigestUtils#md5Hex。

APP 的响应内容不能超过1000个字符。

回调的正文

{
    "callId":"",//每个回调的ID都不一样
    "eventType":"chat_offline",//用于以后的扩展,现在只推送聊天消息(离线和所有),以后会加入更多,比如用户加入了某个群组
    "timestamp":0,//环信接收到此消息的时间
    "chat_type":"groupchat", // 群聊,如果是单聊则为"chat"
    "group_id":'',//群聊时才有此参数
    "from":"",//消息的发送方
    "to":"",//消息的接收方
    "msg_id":"",// 消息ID
    "payload":{//消息,与通过REST API发送过来的一致
    },
    "securityVersion":"",//安全校验版本,目前为1.0.0。忽略此参数,以后会改成Console后台做设置
    "security":""//签名。格式如下: MD5(callId+约定的key+timestamp),约定的key为123456,以后会改成Console后台做设置
}

Payload 数据格式说明

详情可参见:发送消息

{
     "bodies": [ //消息bodies
       {
         "msg": "hhhhhh", //消息内容
         "type": "txt" //消息类型。txt: 文本消息;img: 图片;loc: 位置;audio: 语音
         "length": 3, //语音时长,单位为秒,这个属性只有语音消息有
         "url": "", //图片语音等文件的网络URL,图片和语音消息有这个属性
         "filename": "22.png", //文件名字,图片和语音消息有这个属性
         "secret": "pCY80PdfEeO4Jh9URCOfMQWU9QYsJytynu4n-yhtvAhmt1g9", //获取文件的secret,图片和语音消息有这个属性
         "lat": 39.983805, //发送的位置的纬度,只有位置消息有这个属性
         "lng": 116.307417, //位置经度,只有位置消息有这个属性
         "addr": "北京市海淀区北四环西路66号" //位置消息详细地址,只有位置消息有这个属性
       }
     ],
     "ext": { //自定义扩展属性
         "key1": "value1",   //你设置的key和value的值
    	    ...
     }
}

APP 返回的响应正文

{
    "callId":"",//与环信推送的一致
    "accept":"true",//表明接受了此推送
    "reason":"",//可选,accept为false时使用
    "security":""//签名。格式如下: MD5(callId+约定的key+"true"),约定key为654321
}

注意事项