发送后事件回调过滤规则设置

大约 47 分钟

发送后事件回调过滤规则设置

通过回调过滤规则的设置,可以根据需求选择回调中的有用信息。在环信管理后台设置发送后回调规则后,默认会回调所有事件信息,如需单独设置特定类型不回调,请联系环信商务经理。

从环信服务器向你的应用服务器发送请求

请求采用 POST 方式,支持 HTTP/HTTPS,正文部分为 JSON 格式的字符串,字符集为 UTF-8。

回调时,会对发送的正文做 MD5 签名。 环信 IM 使用的 MD5 为 org.apache.commons.codec.digest.DigestUtils#md5Hex

app 的响应内容不能超过 1,000 个字符。

回调事件

回调内容中单聊、群聊、聊天室事件的公共参数描述

参数类型描述
callIdStringcallId{appkey}_{uuid} 其中 uuid 为随机生成,作为每条回调的唯一标识。
eventTypeString“chat” 上行消息、“chat_offline” 离线消息。
timestamplong环信 IM 服务器接收到此消息的 Unix 时间戳,单位为毫秒。
chat_typeString会话类型(默认全选):
- "chat":单聊回调;
- "groupchat":群聊回调包含了群组和聊天室的消息回调;
- "notify":通知回调包含了 Thread 和 Reaction 的回调,需要结合 payload 中的 type 字段确定具体类型。
group_idStringchat_typegroupchat 有此参数,表示回调消息所在的群组或聊天室。
fromString消息的发送方。
toString消息的接收方。
msg_idString该回调消息的 ID。
payloadobject事件内容,与通过 REST API 发送过来的一致,查看 历史消息内容
securityVersionString安全校验版本,目前为 1.0.0。忽略此参数,以后会改成 Console 后台做设置。
securityString签名,格式如下: MD5(callId+secret+timestamp)。 Secret 见 Console 后台回调规则。
appkeyString你在环信管理后台注册的应用唯一标识。
hostString服务器名称。

单聊

事件payload 中类型触发事件
chat-单聊中所有事件
chat:txt{“bodies”:{“type”:“txt”}}单聊中发文本消息
chat:img{“bodies”:{“type”:“img”}}单聊中发图片消息
chat:audio{“bodies”:{“type”:“audio”}}单聊中发语音消息
chat:loc{“bodies”:{“type”:“loc”}}单聊中发位置消息
chat:video{“bodies”:{“type”:“video”}}单聊中发视频消息
chat:file{“bodies”:{“type”:“file”}}单聊中发文件消息
chat:cmd{“bodies”:{“type”:“cmd”}}单聊中发命令消息
chat:custom{“bodies”:{“type”:“custom”}}单聊中发自定义消息
chat:unknown{“bodies”:{“type”:“unknown”}}单聊中发未知消息

单聊 payload 中消息的字段解释及回调请求的包体示例

文字以及透传消息
字段数据类型描述
extobject消息的扩展字段。
bodiesobject该回调的主体内容,包含以下两个字段 msgtype
msgJson消息内容。
typeString消息类型,包括:
- 文本消息:txt
- 图片消息:img
- 语音消息:audio
- 位置消息:loc
- 视频消息:video
- 文件消息:file
- 命令消息:cmd
- 自定义消息:custom
- 未知消息:unknown

回调请求中 payload 示例:

"payload":{
    "ext":{},
    "bodies":[{"msg":"rr","type":"txt"}]
}
图片消息
字段类型描述
extJson消息的扩展字段。
bodiesobject该回调的主体内容,包含以下六个字段 filenamesecretfile_lengthsizeurltype
filenameString图片名称。
secretString成功上传文件后返回的 secret
file_lengthInt图片文件大小(单位:字节)。
sizeJson图片尺寸;height:高度,width:宽度。
urlString域名 /orgname/appname/chatfiles/ 成功上传文件返回的 UUID。参考请求示例。
typeString消息类型,包括:
- 文本消息:txt
- 图片消息:img
- 语音消息:audio
- 位置消息:loc
- 视频消息:video
- 文件消息:file
- 命令消息:cmd
- 自定义消息:custom
- 未知消息:unknown

payload 示例:

"payload":{
    "ext":{},
    "bodies":[{
        "filename":"image",
        "size":{"width":746,"height":1325},
        "secret":"EsYYqnkREeyZAUHNhFQyIhTJxWxvGOwyx1",
        "file_length":118179,
        "type":"img",
        "url":"https://XXXX.com/"
    }]
}
语音消息 payload 字段
字段类型描述
extJson消息的扩展字段。
filenameString文件名称。
secretString成功上传文件后返回的 secret。
file_lengthLong语音文件大小(单位:字节)。
LengthInt语音时间(单位:秒)。
urlString域名 /org_name/app_name/chatfiles/ 成功上传文件返回的 UUID。

回调请求的包体示例:

"payload":{
    "ext":{},
    "bodies":[{
        "filename":"audio",
        "length":4,
        "secret":"anmSynkREey91e0Ksmmt2Ym6AzpRr9SxsUpF",
        "file_length":6374,
        "type":"audio",
        "url":"https://XXXX.com/"
    }]
}
视频消息
字段类型描述
extJson消息的扩展字段。
bodiesobject该回调的主体内容,包含以下字段 thumb_secretthumbfilenamesecretfile_lengthsizeurltype
thumb_secretString成功上传视频缩略图后返回的 secret。
filenameString文件名称。
sizeJson缩略图图片尺寸;height:高度,width:宽度。
thumbString成功上传视频缩略图返回的 UUID。
secretString成功上传视频文件后返回的 secret。
lengthInt视频播放长度。
file_lengthLong视频文件大小,单位为字节。
typeString消息类型,包括:
- 文本消息:txt
- 图片消息:img
- 语音消息:audio
- 位置消息:loc
- 视频消息:video
- 文件消息:file
- 命令消息:cmd
- 自定义消息:custom
- 未知消息:unknown
urlString视频文件的 URL 地址,格式为 https://{host}/{org_name}/{app_name}/chatfiles/{file_uuid},其中 file_uuid 为视频文件 ID。成功上传视频文件后,从文件上传的响应 body 中获取。

payload 示例:

"payload":{
    "ext":{},
    "bodies":[{
        "thumb_secret":"t1AECnqLEeyS81-d10_HOpjSZc8TD-ud40pFCkOStQrr7Mbc",
        "filename":"video.mp4",
        "size":{
          "width":360,
          "height":480},
        "thumb":"https://XXXX.com/XXXX/XXXX/chatfiles/b7500400-7a8b-11ec-8d83-7106bf6633e6",
        "length":10,
        "secret":"uFtZgHqLEeycBfuoalZCJPD7PVcoOu_RHTRa78bjU_KQAPr2",
        "file_length":601404,
        "type":"video",
        "url":"https://XXXX.com/XXXX/XXXX/chatfiles/b85b3270-7a8b-11ec-9735-6922a85eb891"
    }]
}
位置消息
字段类型描述
latString纬度。
typeString消息类型。位置消息为 loc
lngString经度。
addrString位置的文字描述。

回调请求的包体示例:

"payload":{
    "ext":{},
    "bodies":[{
        "lng":116.32309156766605,
        "type":"loc",
        "addr":"********",
        "lat":39.96612729238626
    }]
}
自定义消息
参数类型描述
customEventString用户自定义的事件类型,必须是 string,值必须满足正则表达式。 [a-zA-Z0-9-_/.]{1,32},最短 1 个字符 最长 32 个字符。
customExts/v2:customExtsArray/Json用户自定义的事件属性。该参数为可选,不需要可以不传。
- customExts 为旧版参数,数组类型,最多可包含 16 个元素。
- v2:customExts 为新版参数,Map<String,String> 类型,最多可以包含 16 个元素。推荐使用该新版参数。
fromString表示消息发送者;无此字段 Server 会默认设置为 “from”:“admin”,有 from 字段但值为空串 (“”) 时请求失败。
extJson扩展属性,支持 app 自定义内容。可以没有这个字段;但是如果有,值不能是 “ext:null” 这种形式,否则会发生错误。
"payload": {
    "ext": {}, 
    "bodies": [{ 
        "customExts": [ {"name": 1 } ],
        "v2:customExts":{"k":"v","k1":"v1"},
        "customEvent": "flower", 
        "type": "custom" 
    }] 
}

群聊

事件payload 中类型触发事件
groupchat-群聊中所有事件
groupchat:txt{“bodies”:{“type”:“txt”}}群聊中发文本消息
groupchat:img{“bodies”:{“type”:“img”}}群聊中发图片消息
groupchat:audio{“bodies”:{“type”:“audio”}}群聊中发语音消息
groupchat:loc{“bodies”:{“type”:“loc”}}群聊中发位置消息
groupchat:video{“bodies”:{“type”:“video”}}群聊中发视频消息
groupchat:file{“bodies”:{“type”:“file”}}群聊中发文件消息
groupchat:cmd{“bodies”:{“type”:“cmd”}}群聊中发命令消息
groupchat:custom{“bodies”:{“type”:“custom”}}群聊中发自定义消息
groupchat:unknown{“bodies”:{“type”:“unknown”}}群聊中发未知消息

群聊中发送消息 payload 中的字段解释

字段数据类型含义
extString消息的扩展字段。
bodiesobject该回调的主体内容,包含以下两个字段 msgtype
msgString消息内容。
typeString消息类型,包括:
- 文本消息:txt
- 图片消息:img
- 语音消息:audio
- 位置消息:loc
- 视频消息:video
- 文件消息:file
- 命令消息:cmd
- 自定义消息:custom
- 未知消息:unknown

回调请求的包体示例:

{
    "callId":"{appkey}_{uuid}",
    "eventType":"chat_offline",
    "timestamp":1600060847294,
    "chat_type":"groupchat", 
    "group_id":"16934809238921545",
    "from":"user1",
    "to":"user2",
    "msg_id":"8924312242322",
    "payload":{
        // 具体的消息内容
    },
    "securityVersion":"1.0.0",
    "security":"2ca02c394bef9e7abc83958bcc3156d3"
 }

聊天室

事件payload 中类型触发事件
chatroom-聊天室中所有事件
chatroom:txt{“bodies”:{“type”:“txt”}}聊天室中发文本消息
chatroom:img{“bodies”:{“type”:“img”}}聊天室中发图片消息
chatroom:audio{“bodies”:{“type”:“audio”}}聊天室中发语音消息
chatroom:loc{“bodies”:{“type”:“loc”}}聊天室中发位置消息
chatroom:video{“bodies”:{“type”:“video”}}聊天室中发视频消息
chatroom:file{“bodies”:{“type”:“file”}}聊天室中发文件消息
chatroom:cmd{“bodies”:{“type”:“cmd”}}聊天室中发命令消息
chatroom:custom{“bodies”:{“type”:“custom”}}聊天室中发自定义消息
chatroom:unknown{“bodies”:{“type”:“unknown”}}聊天室中发未知消息

聊天室中发送消息 payload 中的字段解释

字段数据类型含义
extobject消息的扩展字段。
bodiesobject该回调的主体内容,包含以下两个字段 msgtype
msgString消息内容。
typeString消息类型,包括:
- 文本消息:txt
- 图片消息:img
- 语音消息:audio
- 位置消息:loc
- 视频消息:video
- 文件消息:file
- 命令消息:cmd
- 自定义消息:custom
- 未知消息:unknown

回调请求示例:

{
    "callId":"{appkey}_{uuid}",
    "eventType":"chat_offline",
    "timestamp":1600060847294,
    "chat_type":"groupchat", 
    "group_id":"16934809238921545",
    "from":"user1",
    "to":"user2",
    "msg_id":"8924312242322",
    "payload":{
        // 具体的消息内容
    },
    "securityVersion":"1.0.0",
    "security":"2ca02c394bef9e7abc83958bcc3156d3"
}

消息撤回

事件payload 中类型触发事件
recall进行消息撤回。

回调请求包体字段描述:

字段数据类型描述
callIdStringcallId{appkey}_{uuid} 其中 uuid 为随机生成,作为每条回调的唯一标识。
eventTypeString“chat” 上行消息、“chat_offline” 离线消息。
timestamplong环信 IM 服务器接收到此消息的 Unix 时间戳,单位为 ms。
chat_typeString“chat” 单聊回调、“groupchat” 群聊回调包含了群组和聊天室的消息回调,默认全选。
group_idStringchat_typegroupchat 有此参数,表示回调消息所在的群组或聊天室。
fromString消息的发送方。
toString消息的接收方。
recall_idString要撤回的消息 ID。
msg_idString该撤回事件消息的 ID,与发送消息时的 msg_id 一致。
payloadobject事件内容,与通过 REST API 发送过来的一致,查看 历史消息内容
securityVersionString安全校验版本,目前为 1.0.0。忽略此参数,以后会改成 Console 后台做设置。
securityString签名,格式如下: MD5(callId+secret+timestamp)。Secret 见 Console 后台回调规则。
appkeyString你在环信管理后台注册的应用唯一标识。
hostString服务器名称。

payload 中字段含义:

参数数据类型描述
extobject消息的扩展字段,撤回行为时为空。
ack_message_idStringrecall_id 一致,为要撤回的消息 ID。
bodiesobject该回调的主体内容,撤回行为时为空。

回调请求的包体示例:

{
    "chat_type":"recall",
    "callId":"orgname#appname_966475585536657404",
    "security":"ea7a867314fb0e0833d5f4f169eb4f8d",
    "payload":{
        "ext":{},
        "ack_message_id":"966475220900644860",
        "bodies":[]
    },
    "host":"******",
    "appkey":"orgname#appname",
    "from":"tst",
    "recall_id":"966475220900644860",
    "to":"170908972023810",
    "eventType":"chat",
    "msg_id":"966475585536657404",
    "timestamp":1642589932646
}

群组和聊天室操作

事件payload 中类型群聊触发事件聊天室触发事件
muc-群聊操作所有事件聊天室操作所有事件
muc:create{“operation”:“create”}创建群不支持
muc:destroy{“operation”:“destroy”}解散群解散聊天室
muc:apply{“operation”:“apply”}用户申请加入群不支持
muc:apply_accept{“operation”:“apply_accept”}同意用户加群申请不支持
muc:invite{“operation”:“invite”}邀请新用户进群不支持
muc:invite_accept{“operation”:“invite_accept”}受邀用户同意入群不支持
muc:invite_decline{“operation”:“invite_decline”}受邀用户拒绝入群不支持
muc:kick{“operation”:“kick”}踢出群踢出聊天室(包括聊天室成员被聊天室所有者或管理员移出聊天室以及聊天室成员离线 2 分钟后退出聊天室时会发送该事件)
muc:ban{“operation”:“ban”}将用户添加到群组黑名单不支持
muc:allow{“operation”:“allow”}将用户移出群组黑名单不支持
muc:update{“operation”:“update”}群信息修改聊天室信息修改
muc:block{“operation”:“block”}用户屏蔽群不支持
muc:unblock{“operation”:“unblock”}用户解除屏蔽群不支持
muc:presence{“operation”:“presence”}有新成员加入了群有新成员加入了聊天室
muc:absence{“operation”:“absence”}有成员退出了群有成员离开了聊天室
muc:direct_joined{“operation”:“direct_joined”}成员直接加入群(未开启加入验证)不支持
muc:leave{“operation”:“leave”}成员主动退出群成员主动退出聊天室
muc:assing_owner{“operation”:“assing_owner”}转让群不支持
muc:add_admin{“operation”:“add_admin”}添加群管理员添加聊天室管理员
muc:remove_admin{“operation”:“remove_admin”}移除群管理员移除聊天室管理员
muc:add_mute{“operation”:“add_mute”}将群成员禁言将聊天室成员禁言
muc:remove_mute{“operation”:“remove_mute”}将群成员解除禁言将聊天室成员解除禁言
muc:update_announcement{“operation”:“update_announcement”}更新群公告更新聊天室公告
muc:delete_announcement{“operation”:“delete_announcement”}删除群公告删除聊天室公告
muc:upload_file{“operation”:“upload_file”}上传群文件/
muc:delete_file{“operation”:“delete_file”}删除群文件/
muc:add_user_white_list{“operation”:“add_user_white_list”}将成员加入群白名单将成员加入聊天室白名单
muc:remove_user_white_list{“operation”:“remove_user_white_list”}将成员移除群白名单将成员移除聊天室白名单
muc:ban_group{“operation”:“ban_group”}群全局禁言聊天室全局禁言
muc:remove_ban_group{“operation”:“remove_ban_group”}解除群全局禁言解除聊天室全局禁言
muc:set_metadata{“operation”:“set_metadata”}不支持设置/更新聊天室自定义属性。
muc:delete_metadata{“operation”:“delete_metadata”}不支持删除聊天室自定义属性。
muc:group_member_metadata_update{“operation”:“group_member_metadata_update”}设置群成员的自定义属性不支持

创建群组

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组在服务器的唯一标识,{appkey}_{群组 ID}@conference.easemob.com
reasonString/
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
operationStringcreate 创建群组。
statusobject状态,包括 descriptionerror_code
descriptionString创建群组失败的原因描述。
error_codeString创建失败对应的错误码。

创建群组回调请求示例:

{ 
    "chat_type": "muc",
    "callId": "XXXX#XXXX_976459883882744164", 
    "security": "f0f8645cb9b2ccdab3c16db239b13e83", 
    "payload": {
        "muc_id": "XXXX#XXXX_173556296122369@conference.easemob.com", 
        "reason": "",
        "is_chatroom": false,
        "operation": "create",
        "status": {
            "description":"",
            "error_code": "ok"
            }
        },
    "group_id": "173556296122369",
    "host": "XXXX",
    "appkey": "XXXX#XXXX",
    "from": "XXXX#XXXX_1111@easemob.com/android_8070d7b2-795eb6e63d",
    "to": "1111",
    "eventType": "chat",
    "msg_id": "976459883882744164",
    "timestamp": 1644914583273
}

解散群/聊天室

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组/聊天室在服务器的唯一标识,{appkey}_{群/聊天室 ID}@conference.easemob.com
reasonString/
operationStringdestroy 解散群/聊天室。
statusobject状态,包括 descriptionerror_code
descriptionString解散群组或聊天室失败的原因描述。
error_codeString操作失败对应的错误码。

解散群组回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976430482738645348", 
    "security": "c6f411dedb43ebc499b14779eaa9a82b", 
    "payload": { 
        "muc_id": "XXXX#XXXX_173548612157441@conference.easemob.com", 
        "reason": "", 
        "is_chatroom": false, 
        "operation": "destroy", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "173548612157441", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX_a3-af9c-2a3ae9d778b0", 
    "to": "admin", 
    "eventType": "chat", 
    "msg_id": "976430482738645348", 
    "timestamp": 1644907737798 
}

解散聊天室回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_XXXX", 
    "security": "776cbf0b06df9a59d660f6c024aeeb81", 
    "payload": { 
        "muc_id": "XXXX#XXXX_XXXX@conference.easemob.com", 
        "is_chatroom": true, 
        "operation": "destroy", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        },
    "group_id": "XXXX",
    "host": "XXXX",
    "appkey": "XXXX#XXXX",
    "from": "XXXX#XXXX",
    "to": "1111", 
    "eventType": "chat", 
    "msg_id": "XXXX", 
    "timestamp": 1644912946446
}

用户申请加入群

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组在服务器的唯一标识,{appkey}_{群组 ID}@conference.easemob.com
reasonString/
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
operationStringapply:申请加入群。
statusobject状态,包括 descriptionerror_code
descriptionString申请加入群组失败的原因描述。
error_codeString失败对应的错误码。

回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_XXXX", 
    "security": "08eaa57abe898b83df9c84bb4a50c5a5", 
    "payload": { 
        "muc_id": "XXXX#XXXX_.com", 
        "reason": "join group123", 
        "is_chatroom": false, 
        "operation": "apply", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXXcom", 
    "to": "2222", 
    "eventType": "chat", 
    "msg_id": "XXXX", 
    "timestamp": 1644908512194 
}

同意成员加群申请

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组在服务器的唯一标识,{appkey}_{群/聊天室 ID}@conference.easemob.com
reasonString/
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
operationStringapply_accept:接受加入群组的申请。
statusobject状态,包括 descriptionerror_code
descriptionString操作失败的原因描述。
error_codeString失败对应的错误码。

回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976435003388856676", 
    "security": "d86bb27395e87e0dffe56e061669a2d9", 
    "payload": { 
        "muc_id": "XXXX#XXXX@conference.easemob.com", 
        "reason": "", 
        "is_chatroom": false, 
        "operation": "apply_accept", 
        "status": { 
            "description": ""
            }
        },
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX", 
    "to": "aaa111", 
    "eventType": "chat", 
    "msg_id": "976435003388856676", 
    "timestamp": 1644908790333 
}

邀请新用户进群

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组在服务器的唯一标识,{appkey}_{群 ID}@conference.easemob.com
reasonString/
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
operationStringinvite:邀请新成员加入群。
statusobject状态,包括 descriptionerror_code
descriptionString邀请新用户加入群组失败的原因描述。
error_codeString失败对应的错误码。

回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976447662725273956", 
    "security": "2ae5959b661c26cbf55f4582cb2a8931", 
    "payload": { 
        "muc_id": "XXXX#XXXX@conference.easemob.com",
        "reason": "你好啊", 
        "is_chatroom": false, 
        "operation": "invite", 
        "status": { 
            "description": "",
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX_@XXXX", 
    "to": "1111", 
    "eventType": "chat", 
    "msg_id": "976447662725273956", 
    "timestamp": 1644911737827 
}

受邀用户同意入群

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组在服务器的唯一标识,{appkey}_{群 ID}@conference.easemob.com
reasonString/
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
operationStringinvite_accept:受邀用户同意加入群。
statusobject状态,包括 descriptionerror_code
descriptionString操作失败的原因描述。
error_codeString失败对应的错误码。

回调示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976447989306362212", 
    "security": "1881ae2f25c7f92a8b05c6ce0866929f", 
    "payload": { 
        "muc_id": "XXXX#XXXX@conference.easemob.com", 
        "reason": "", 
        "is_chatroom": false, 
        "operation": "invite_accept", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX_1111@easemob.com/android_8070d7b2-7be0-4959-b4a2-06795eb6e63d", 
    "to": "1111", 
    "eventType": "chat", 
    "msg_id": "976447989306362212", 
    "timestamp": 1644911813866 
}

受邀用户拒绝入群

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组在服务器的唯一标识,{appkey}_{群 ID}@conference.easemob.com
reasonString/
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
operationStringinvite_decline:受邀用户拒绝加入群。
statusobject状态,包括 descriptionerror_code
descriptionString操作失败的原因描述。
error_codeString失败对应的错误码。

回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976448350272358756", 
    "security": "5f5dea4fec2582c20a9ff5b3e1330a02", 
    "payload": { 
        "muc_id": "XXXX#XXXX@conference.easemob.com", 
        "reason": "", 
        "is_chatroom": false, 
        "operation": "invite_decline", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX",
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX_1111@easemob.com/android_8070d7b2-7be0-4959-b4a2-06795eb6e63d", 
    "to": "1111", 
    "eventType": "chat", 
    "msg_id": "976448350272358756", 
    "timestamp": 1644911897910 
}

踢出群/聊天室

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组/聊天室在服务器的唯一标识,{appkey}_{群/聊天室 ID}@conference.easemob.com
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
operationStringkick:将成员踢出群组或聊天室。
对于聊天室来说,环信服务器会在以下两种情况向你的应用服务器发送回调请求:
- 聊天室成员被聊天室所有者或管理员移出聊天室;
- 聊天室成员离线 2 分钟后退出聊天室。
statusobject状态,包括 descriptionerror_code
descriptionString操作失败的原因描述。
error_codeString失败对应的错误码。

踢出群回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976432657191668068", 
    "security": "f8956ab6d6f78df93efb2dbca5f2eb83", 
    "payload": { 
        "muc_id": "XXXX#XXXX@conference.easemob.com", 
        "is_chatroom": false, 
        "operation": "kick", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX", 
    "to": "aaa111", 
    "eventType": "chat", 
    "msg_id": "976432657191668068", 
    "timestamp": 1644908244060 
}

踢出聊天室请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976453352206371172", 
    "security": "693b47daf71607ddd748bf923357e965", 
    "payload": { 
        "muc_id": "XXXX#XXXX", 
        "is_chatroom": true, 
        "operation": "kick", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX", 
    "to": "3333", 
    "eventType": "chat", 
    "msg_id": "976453352206371172", 
    "timestamp": 1644913062505 
}

添加成员至群组黑名单

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组在服务器的唯一标识,{appkey}_{群 ID}@conference.easemob.com
reasonString/
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
operationStringban:将成员添加到黑名单。
statusobject状态,包括 descriptionerror_code
descriptionString操作失败的原因描述。
error_codeString失败对应的错误码。

封禁群成员,即将群成员添加到黑名单的回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_XXXX", 
    "security": "57a539e96d9cc5c8de9ff779b029c10e", 
    "payload": { 
        "muc_id": "XXXX#XXXX_XXXX@conference.easemob.com", 
        "reason": "", 
        "is_chatroom": false, 
        "operation": "ban", 
        "status": { 
            "description": "",
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX_1111@easemob.com/android_8070d7b2-7be0-4959-b4a2-06795eb6e63d", 
    "to": "1111", 
    "eventType": "chat", 
    "msg_id": "XXXX", 
    "timestamp": 1644916572276 
}

将成员从群组黑名单中移除

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组在服务器的唯一标识,{appkey}_{群 ID}@conference.easemob.com
reasonString/
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
operationStringallow:将成员从黑名单中移除。
statusobject状态,包括 descriptionerror_code
descriptionString操作失败的原因描述。
error_codeString失败对应的错误码。

payload 示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_XXXX", 
    "security": "f16b58abc9819e9c24b44e062910fd96", 
    "payload": { 
        "muc_id": "XXXX#XXXX@conference.easemob.com", 
        "reason": "undefined", 
        "is_chatroom": false, 
        "operation": "allow", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX", 
    "to": "1111", 
    "eventType": "chat", 
    "msg_id": "XXXX", 
    "timestamp": 1644908410143 
}

群/聊天室信息修改

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组/聊天室在服务器的唯一标识,{appkey}_{群/聊天室 ID}@conference.easemob.com
reasonString/
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
operationStringupdate:群/聊天室信息修改。
statusobject状态,包括 descriptionerror_code
descriptionString操作失败的原因描述。
error_codeString失败对应的错误码。

群信息修改回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976436197985356132", 
    "security": "635636b9e800bbf1387734b206552c5f", 
    "payload": { 
        "muc_id": "XXXX#XXXX_XXXX@conference.easemob.com", 
        "is_chatroom": false, 
        "operation": "update", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX", 
    "to": "1111", 
    "eventType": "chat", 
    "msg_id": "976436197985356132", 
    "timestamp": 1644909068475 
}

聊天室信息修改回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_XXXX", 
    "security": "07796ba1504c284f49710b55fa42dd47", 
    "payload": { 
        "muc_id": "XXXX#XXXX_XXXX@conference.easemob.com", 
        "is_chatroom": true, 
        "operation": "update", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX", 
    "to": "1111", 
    "eventType": "chat", 
    "msg_id": "XXXX", 
    "timestamp": 1644912742341 
}

屏蔽群组

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组在服务器的唯一标识,{appkey}_{群 ID}@conference.easemob.com
reasonString/
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
operationStringblock:用户屏蔽群。
statusobject状态,包括 descriptionerror_code
descriptionString操作失败的原因描述。
error_codeString失败对应的错误码。

用户屏蔽群回调请求示例:

{
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_XXXX", 
    "security": "e8d00a68ea63e76a3d86d6853cf1f5e1", 
    "payload": { 
        "muc_id": "XXXX#XXXX_XXXX@conference.easemob.com", 
        "reason": "", 
        "is_chatroom": false, 
        "operation": "block", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX_3333@easemob.com/ios_f43087fc-5823-4f53-9276-52546f3a4649", 
    "to": "3333", 
    "eventType": "chat", 
    "msg_id": "XXXX", 
    "timestamp": 1644918981507 
}

解除屏蔽群组

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组在服务器的唯一标识,{appkey}_{群 ID}@conference.easemob.com
reasonString/
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
operationStringunblock:用户解除屏蔽群组。
statusobject状态,包括 descriptionerror_code
descriptionString操作失败的原因描述。
error_codeString失败对应的错误码。

请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_XXXX", 
    "security": "2f217429e4c2d8c09330cb5e2946aa90", 
    "payload": { 
        "muc_id": "XXXX#XXXX_XXXX@conference.easemob.com", 
        "reason": "", 
        "is_chatroom": false, 
        "operation": "unblock", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            }
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX_3333@easemob.com/ios_f43087fc-5823-4f53-9276-52546f3a4649", 
    "to": "3333", 
    "eventType": "chat", 
    "msg_id": "XXXX", 
    "timestamp": 1644919019526 
}

有新成员加入了群组或聊天室

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组/聊天室在服务器的唯一标识,{appkey}_{群/聊天室 ID}@conference.easemob.com
operationStringpresence:成员进群/聊天室。
is_chatroomBool是否是聊天室。
- true:是;
- false:否。

此外,from新成员用户 ID@easemob.com,to 为群组 ID 或聊天室 ID。

有新成员加入了群组时,即时通讯 IM 服务会向你的应用服务器发送用户加入了群组的通知。回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976428411540998500", 
    "security": "13abc508b407d38d9c0d0e11bb8b9903", 
    "payload": {
        "muc_id": "XXXX#XXXX_173548612157441@conference.easemob.com", 
        "is_chatroom": false,
        "operation": "presence" 
        }, 
    "group_id": "173548612157441", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX_1111@easemob.com",
    "to": "173548612157441", 
    "eventType": "chat",
    "msg_id": "976428411540998500",
    "timestamp": 1644907255555
}

有新成员加入了聊天室时,即时通讯 IM 服务会向你的应用服务器发送用户加入了聊天室的通知。回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_XXXX", 
    "security": "dde4f43158aea3e142bc6cbc21862f91", 
    "payload": { 
        "muc_id": "XXXX#XXXX_XXXX@conference.easemob.com", 
        "is_chatroom": true, 
        "operation": "presence" 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX_2222@easemob.com", 
    "to": "XXXX", 
    "eventType": "chat", 
    "msg_id": "XXXX", 
    "timestamp": 1644912467208 
}

有成员离开了群组或聊天室

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组/聊天室在服务器的唯一标识,{appkey}_{群/聊天室 ID}@conference.easemob.com
operationStringabsence:成员离开群/聊天室。
is_chatroomBool是否是聊天室。
- true:是;
- false:否。

此外,from离开的成员的用户 ID@easemob.com,to 为群组 ID 或聊天室 ID。

有新成员主动离开了群组或被移出时,即时通讯 IM 服务会向你的应用服务器发送用户离开了群组的通知。回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_XXXX", 
    "security": "d738f1b0379179677827f3da023d1195", 
    "payload": { 
        "muc_id": "XXXX#XXXX@conference.easemob.com", 
        "is_chatroom": false, 
        "operation": "absence" 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX_aaa111@easemob.com", 
    "to": "XXXX", 
    "eventType": "chat", 
    "msg_id": "XXXX", 
    "timestamp": 1644908244062 
}

有新成员主动离开了聊天室或被移出时,即时通讯 IM 服务会向你的应用服务器发送用户离开了聊天室的通知。回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_XXXX", 
    "security": "5aed52a1df02d8103afd2d8dd2dce04b", 
    "payload": { 
        "muc_id": "XXXX#XXXX_XXXX@conference.easemob.com", 
        "is_chatroom": true, 
        "operation": "absence" 
        },
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX_1111@easemob.com", 
    "to": "XXXX", 
    "eventType": "chat", 
    "msg_id": "XXXX", 
    "timestamp": 1644912308123 
}

成员主动退出群/成员主动离开聊天室

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组/聊天室在服务器的唯一标识,{appkey}_{群/聊天室 ID}@conference.easemob.com
operationStringleave:有成员主动退出群/主动离开聊天室。
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
statusobject状态,包括 descriptionerror_code
descriptionString操作失败的原因描述。
error_codeString失败对应的错误码。

成员主动退出群回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976437246481664356", 
    "security": "a44839d3599f71c4ce237e216bd502aa", 
    "payload": { 
        "muc_id": "XXXX#XXXX@conference.easemob.com", 
        "is_chatroom": false, 
        "operation": "leave", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX_aaa111@easemob.com", 
    "to": "2222", 
    "eventType": "chat", 
    "msg_id": "976437246481664356", 
    "timestamp": 1644909312600 
}

成员主动离开聊天室回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976450112211388772", 
    "security": "52f2b10050c763a64067bf339e5dc2b1", 
    "payload": { 
        "muc_id": "XXXX#XXXX_XXXX@conference.easemob.com", 
        "is_chatroom": true, 
        "operation": "leave", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX_1111@easemob.com", 
    "to": "2222", 
    "eventType": "chat", 
    "msg_id": "976450112211388772", 
    "timestamp": 1644912308125
}

转让群

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组在服务器的唯一标识,{appkey}_{群}@conference.easemob.com
operationStringassing_owner:转让群。
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
statusobject状态,包括 descriptionerror_code
descriptionString操作失败的原因描述。
error_codeString失败对应的错误码。

转让群回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_XXXX", 
    "security": "fccdff91bd5e0cc3c4758ee3670a5ec2", 
    "payload": { 
        "muc_id": "XXXX#XXXX@conference.easemob.com", 
        "is_chatroom": false, 
        "operation": "assing_owner", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX_1111@easemob.com", 
    "to": "2222", 
    "eventType": "chat",
    "msg_id": "XXXX", 
    "timestamp": 1644907917897
}

添加群/聊天室管理员

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组/聊天室在服务器的唯一标识,{appkey}_{群/聊天室 ID}@conference.easemob.com
reasonString/
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
operationStringadd_admin:添加群/聊天室管理员。
statusobject状态,包括 descriptionerror_code
descriptionString操作失败的原因描述。
error_codeString失败对应的错误码。

添加群管理员回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_XXXX", 
    "security": "5f7e42423ad70312a3e024ee02ac849a", 
    "payload": { 
        "muc_id": "XXXX#XXXX@conference.easemob.com", 
        "is_chatroom": false, 
        "operation": "add_admin", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX", 
    "to": "2222", 
    "eventType": "chat", 
    "msg_id": "XXXX", 
    "timestamp": 1644908059969 
}

添加聊天室管理员回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_XXXX", 
    "security": "d48c298d2356d8e1799bf9ef2d6bc4f3", 
    "payload": { 
        "muc_id": "XXXX#XXXX", 
        "is_chatroom": true, 
        "operation": "add_admin", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX", 
    "to": "1111", 
    "eventType": "chat", 
    "msg_id": "XXXX", 
    "timestamp": 1644913136541 
}

删除群/聊天室管理员

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组/聊天室在服务器的唯一标识,{appkey}_{群/聊天室 ID}@conference.easemob.com
reasonString/
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
operationStringremove_admin:删除群/聊天室管理员。
statusobject状态,包括 descriptionerror_code
descriptionString操作失败的原因描述。
error_codeString失败对应的错误码。

删除群管理员回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_XXXX", 
    "security": "bb1cea362da70f2f47424e526382e5f1", 
    "payload": { 
        "muc_id": "XXXX#XXXX@conference.easemob.com", 
        "is_chatroom": false, 
        "operation": "remove_admin", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX",
    "to": "2222", 
    "eventType": "chat", 
    "msg_id": "XXXX", 
    "timestamp": 1644908095988 
}

删除聊天室管理员回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_XXXX", 
    "security": "f9cab6ee655af0e9de66e8be3de978a4", 
    "payload": { 
        "muc_id": "XXXX#XXXX", 
        "is_chatroom": true, 
        "operation": "remove_admin", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX", 
    "to": "1111", 
    "eventType":"chat", 
    "msg_id": "XXXX", 
    "timestamp": 1644913174560
}

将群/聊天室成员禁言

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组/聊天室在服务器的唯一标识,{appkey}_{群/聊天室 ID}@conference.easemob.com
reasonString/
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
operationStringadd_mute:将群/聊天室成员禁言。
statusobject状态,包括 descriptionerror_code
descriptionString操作失败的原因描述。
error_codeString失败对应的错误码。

将群成员禁言回调示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_XXXX", 
    "security": "57a539e96d9cc5c8de9ff779b029c10e", 
    "payload": { 
        "muc_id": "XXXX#XXXX_XXXX@conference.easemob.com", 
        "reason": "", 
        "is_chatroom": false, 
        "operation": "ban", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX_1111@easemob.com/android_8070d7b2-7be0-4959-b4a2-06795eb6e63d",
    "to": "1111", 
    "eventType": "chat", 
    "msg_id": "XXXX", 
    "timestamp": 1644916572276 
}

将聊天室成员禁言回调示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976454013950101860", 
    "security": "6a6445651e66043b1cbc7b605ef1692a", 
    "payload": { 
        "muc_id": "XXXX#XXXX", 
        "is_chatroom": true, 
        "operation": "add_mute", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX", 
    "to": "2222", 
    "eventType": "chat", 
    "msg_id": "976454013950101860", 
    "timestamp": 1644913216581 
}

将群/聊天室成员解除禁言

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组/聊天室在服务器的唯一标识,{appkey}_{群/聊天室 ID}@conference.easemob.com
reasonString/
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
operationStringremove_mute:将群/聊天室成员解除禁言。
statusobject状态,包括 descriptionerror_code
descriptionString操作失败的原因描述。
error_codeString失败对应的错误码。

将群成员解除禁言回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976435338580855140", 
    "security": "710b5e43699a35d98a6de6a9fc89d937", 
    "payload": { 
        "muc_id": "XXXX#XXXX@conference.easemob.com", 
        "is_chatroom": false, 
        "operation": "remove_mute", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
          } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX", 
    "to": "2222", 
    "eventType": "chat", 
    "msg_id": "976435338580855140", 
    "timestamp": 1644908868377 
}

将聊天室成员解除禁言回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976454039732488548", 
    "security": "40b3accd9c2403c387808e92204db200", 
    "payload": { 
        "muc_id": "XXXX#XXXX", 
        "is_chatroom": true, 
        "operation": "remove_mute", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX", 
    "to": "2222", 
    "eventType": "chat", 
    "msg_id": "976454039732488548", 
    "timestamp": 1644913222584 
}

更新群/聊天室公告

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组/聊天室在服务器的唯一标识,{appkey}_{群/聊天室 ID}@conference.easemob.com
reasonString群公告内容。
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
operationStringupdate_announcement:更新群/聊天室公告。
statusobject状态,包括 descriptionerror_code
descriptionString操作失败的原因描述。
error_codeString失败对应的错误码。

更新群公告示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976445325097044324", 
    "security": "06091170b6e9b9c20cd7c29266ad038c", 
    "payload": { 
        "muc_id": "XXXX#XXXX@conference.easemob.com", 
        "reason": "gogngao", 
        "is_chatroom": false, 
        "operation": "update_announcement", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX", 
    "to": "XXXX", 
    "eventType": "chat", 
    "msg_id": "976445325097044324", 
    "timestamp": 1644911193549 
}

更新聊天室公告示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976454374907709796", 
    "security": "0d6cdf339ec1d78ec6ee8337892ae52f", 
    "payload": { 
        "muc_id": "XXXX#XXXX", 
        "reason": "1111", 
        "is_chatroom": true, 
        "operation": "update_announcement", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        },
    "group_id": "XXXX",
    "host": "XXXX",
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX", 
    "to": "XXXX", 
    "eventType": "chat", 
    "msg_id": "976454374907709796", 
    "timestamp": 1644913300624 
}

删除群/聊天室公告

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组/聊天室在服务器的唯一标识,{appkey}_{群/聊天室 ID}@conference.easemob.com
reasonString删除后群公告内容,为空。
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
operationStringdelete_announcement:删除群/聊天室公告。
statusobject状态,包括 descriptionerror_code
descriptionString操作失败的原因描述。
error_codeString失败对应的错误码。

删除群公告回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976454194401642852", 
    "security": "d8f31984da8d33462a4c9558c9b793fc", 
    "payload": { 
        "muc_id": "XXXX#XXXX_XXXX@conference.easemob.com", 
        "reason": "", 
        "is_chatroom": false, 
        "operation": "delete_announcement", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            }
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX_1111@easemob.com", 
    "to": "XXXX", 
    "eventType": "chat", 
    "msg_id": "976454194401642852", 
    "timestamp": 1644913258595 
}

删除聊天室公告回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976471348589103460", 
    "security": "f809f2d2099a3d58323ec879da08b689", 
    "payload": { 
        "muc_id": "XXXX#XXXX_173558850453505@conference.easemob.com", 
        "reason": "", 
        "is_chatroom": true, 
        "operation": "delete_announcement", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "173558850453505",
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX", 
    "to": "173558850453505", 
    "eventType": "chat", 
    "msg_id": "976471348589103460", 
    "timestamp": 1644917252616 
}

上传群共享文件

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组在服务器的唯一标识,{appkey}_{群 ID}@conference.easemob.com
reasonobject包含 file_idfile_namefile_ownerfile_sizecreated 几个字段。
file_idString文件 ID。
file_nameString文件名称。
file_ownerString文件所有者。
file_sizeInt文件大小,单位为字节。
createdlong文件创建的 Unix 时间戳,单位为 ms。
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
operationStringupload_file:上传群文件。
statusobject状态,包括 descriptionerror_code
descriptionString操作失败的原因描述。
error_codeString失败对应的错误码。

上传群共享文件回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976438097292036452", 
    "security": "426c327006ccc3283d157d7da22db27f", 
    "payload": { 
        "muc_id": "XXXX#XXXX@conference.easemob.com", 
        "reason": {
            "data": {
                "file_id": "79ddf840-XXXX-XXXX-bec3-ad40868b03f9",
                "file_name": "a.csv",
                "file_owner": "@ppAdmin",
                "file_size": 6787,
                "created": 1644909510085
                }
            },
        "is_chatroom": false, 
        "operation": "upload_file", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX", 
    "to": "XXXX", 
    "eventType": "chat", 
    "msg_id": "976438097292036452", 
    "timestamp": 1644909510697 
}

删除群共享文件

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组在服务器的唯一标识,{appkey}_{群 ID}@conference.easemob.com
reasonobject跟上传群文件时 file_id 一致。
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
operationStringdelete_file:删除群文件。
statusobject状态,包括 descriptionerror_code
descriptionString操作失败的原因描述。
error_codeString失败对应的错误码。

删除群共享文件回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976438501211900260", 
    "security": "63820599e494260f350d3bf1d8d2ffea", 
    "payload": { 
        "muc_id": "XXXX#XXXX@conference.easemob.com", 
        "reason": "79ddf840-8e2f-11ec-bec3-ad40868b03f9", 
        "is_chatroom": false, 
        "operation": "delete_file", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX", 
    "to": "XXXX", 
    "eventType": "chat", 
    "msg_id": "976438501211900260", 
    "timestamp": 1644909604744 
}

添加用户进群/聊天室白名单

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组在服务器的唯一标识,{appkey}_{群/聊天室 ID}@conference.easemob.com
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
operationStringadd_user_white_list:添加用户进群/聊天室白名单。
statusobject状态,包括 descriptionerror_code
descriptionString操作失败的原因描述。
error_codeString失败对应的错误码。

添加用户进群白名单回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX", 
    "security": "93cd067cebd7313c7fcfcb0a682e30a8", 
    "payload": { 
        "muc_id": "XXXX#XXXX@conference.easemob.com", 
        "is_chatroom": false, 
        "operation": "add_user_white_list", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX", 
    "to": "2222", 
    "eventType": "chat", 
    "msg_id": "976437461330692452", 
    "timestamp": 1644909362624 
}

添加用户进聊天室白名单回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976456222645422436", 
    "security": "b0996aa98a641988f897b30feea32c88", 
    "payload": { 
        "muc_id": "XXXX#XXXX", 
        "is_chatroom": true, 
        "operation": "add_user_white_list", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX", 
    "to": "2222", 
    "eventType": "chat", 
    "msg_id": "976456222645422436", 
    "timestamp": 1644913730839 
}

将用户移出群/聊天室白名单

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组在服务器的唯一标识,{appkey}_{群/聊天室 ID}@conference.easemob.com
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
operationStringremove_user_white_list:将用户从群/聊天室白名单移除。
statusobject状态,包括 descriptionerror_code
descriptionString操作失败的原因描述。
error_codeString失败对应的错误码。

将用户移出群白名单回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976437487104690532", 
    "security": "b1c9ddc90c220a5aec2094d99a057b27", 
    "payload": { 
        "muc_id": "XXXX#XXXX@conference.easemob.com", 
        "is_chatroom": false, 
        "operation": "remove_user_white_list", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX", 
    "to": "2222", 
    "eventType": "chat", 
    "msg_id": "976437487104690532", 
    "timestamp": 1644909368625 
}

将用户移出聊天室白名单回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976456643757738340", 
    "security": "986f3b741cc28092768e0ff3b5b668e7", 
    "payload": { 
        "muc_id": "XXXX#XXXX", 
        "is_chatroom": true, 
        "operation": "remove_user_white_list", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX", 
    "to": "2222", 
    "eventType": "chat", 
    "msg_id": "976456643757738340", 
    "timestamp": 1644913828888 
}

群/聊天室全局禁言

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组/聊天室在服务器的唯一标识,{appkey}_{群/聊天室 ID}@conference.easemob.com
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
operationStringban_group:将群或聊天室全局禁言。
statusobject状态,包括 descriptionerror_code
descriptionString操作失败的原因描述。
error_codeString失败对应的错误码。

群全局禁言回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976455861675231588", 
    "security": "b647e5b0c0c07f61426b1143f107b362", 
    "payload": { 
        "muc_id": "XXXX#XXXX_XXXX@conference.easemob.com", 
        "is_chatroom": false, 
        "operation": "ban_group", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX", 
    "to": "XXXX", 
    "eventType": "chat", 
    "msg_id": "976455861675231588", 
    "timestamp": 1644913646792 
}

聊天室全局禁言回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976454710078736740", 
    "security": "f1da0b9cfbf3a265ce26bf974ba442db", 
    "payload": { 
        "muc_id": "XXXX#XXXX", 
        "is_chatroom": true, 
        "operation": "ban_group", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX", 
    "to": "XXXX", 
    "eventType": "chat", 
    "msg_id": "976454710078736740", 
    "timestamp": 1644913378662
}

解除群/聊天室全局禁言

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在群组/聊天室在服务器的唯一标识,{appkey}_{群/聊天室 ID}@conference.easemob.com
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
operationStringremove_ban_group:解除群或聊天室全局禁言。
statusobject状态,包括 descriptionerror_code
descriptionString操作失败的原因描述。
error_codeString失败对应的错误码。

解除群全局禁言回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_XXXX", 
    "security": "XXXX", 
    "payload": { 
        "muc_id": "XXXX#XXXX_XXXX@conference.easemob.com", 
        "is_chatroom": false, 
        "operation": "remove_ban_group", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX", 
    "to": "XXXX", 
    "eventType": "chat", 
    "msg_id": "XXXX", 
    "timestamp": 1644913644791 
}

解除聊天室全局禁言回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_XXXX", 
    "security": "5edfc6329c37e83e4602943663320797", 
    "payload": { 
        "muc_id": "XXXX#XXXX", 
        "is_chatroom": true, 
        "operation": "remove_ban_group", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
            } 
        }, 
    "group_id": "XXXX", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "XXXX#XXXX", 
    "to": "XXXX", 
    "eventType": "chat", 
    "msg_id": "XXXX", 
    "timestamp": 1644913522735 
}

设置/更新聊天室自定义属性

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在聊天室在服务器的唯一标识,{appkey}_{聊天室 ID}@conference.easemob.com
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
event_info.extString消息的扩展字段,包含聊天室的自定义属性内容。
event_info.typeString聊天室自定义属性类型。
operationStringset_metadata:设置或更新聊天室自定义属性。
statusobject状态,包括 descriptionerror_code
descriptionString操作失败的原因描述。
error_codeString失败对应的错误码。

此外,from 为聊天室 ID,to 为聊天室中成员的用户 ID。

设置/更新聊天室自定义属性回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976432657191668068", 
    "security": "f8956ab6d6f78df93efb2dbca5f2eb83", 
    "payload": { 
        "muc_id": "XXXX#XXXX@conference.easemob.com", 
        "is_chatroom": true, 
        "event_info":{
           "ext":"{\"result\":{\"successKeys\": [\"key1\",\"key2\"],\"errorKeys\":{}},\"identify\":\"\",\"is_forced\":false,\"muc_name\":\"Take\",\"need_notify\":true, \"properties\":{\"key1\": \"value1\",\"key2\": \"value2 \"}, \"operator \": \"user1\"}",
           "type":"event_none" 
        },
        "operation": "set_metadata", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
        } 
    }, 
    "group_id": "662XXXX13", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "662XXXX13", 
    "to": "aaa111", 
    "eventType": "chat", 
    "msg_id": "976432657191668068", 
    "timestamp": 1644908244060 
}

删除聊天室自定义属性

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在聊天室在服务器的唯一标识,{appkey}_{聊天室 ID}@conference.easemob.com
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
event_info.extString消息的扩展字段,包含聊天室的自定义属性内容。
event_info.typeString聊天室自定义属性类型。
operationStringdelete_metadata:删除聊天室自定义属性。
statusobject状态,包括 descriptionerror_code
descriptionString操作失败的原因描述。
error_codeString失败对应的错误码。

此外,from 为聊天室 ID,to 为聊天室中成员的用户 ID。

删除聊天室自定义属性回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976432657191668068", 
    "security": "f8956ab6d6f78df93efb2dbca5f2eb83", 
    "payload": { 
        "muc_id": "XXXX#XXXX@conference.easemob.com", 
        "is_chatroom": true, 
        "event_info":{
           "ext":"{\"result\":{\"successKeys\": [\"key1\",\"key2\"],\"errorKeys\":{}},\"identify\":\"\",\"is_forced\":false,\"muc_name\":\"Take\",\"need_notify\":true, \"properties\":{\"key1\": \"value1\",\"key2\": \"value2 \"}, \"operator \": \"user1\"}",
           "type":"event_none" 
        },
        "operation": "delete_metadata", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
        } 
    }, 
    "group_id": "662XXXX13", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "662XXXX13", 
    "to": "aaa111", 
    "eventType": "chat", 
    "msg_id": "976432657191668068", 
    "timestamp": 1644908244060 
}

设置群成员的自定义属性

payload 字段含义:

字段数据类型含义
muc_idString该回调事件所在聊天室在服务器的唯一标识,{appkey}_{群组 ID}@conference.easemob.com
is_chatroomBool是否是聊天室。
- true:是;
- false:否。
event_info.extString消息的扩展字段,包含群组成员的自定义属性内容。
event_info.typeString群组成员的自定义属性类型。
operationStringgroup_member_metadata_update:设置或更新群组成员的自定义属性。
statusobject状态,包括 descriptionerror_code
descriptionString操作失败的原因描述。
error_codeString失败对应的错误码。

此外,from 为群组 ID,to 为群组成员的用户 ID。

设置群成员的自定义属性的回调请求示例:

{ 
    "chat_type": "muc", 
    "callId": "XXXX#XXXX_976432657191668068", 
    "security": "f8956ab6d6f78df93efb2dbca5f2eb83", 
    "payload": { 
        "muc_id": "XXXX#XXXX@conference.easemob.com", 
        "is_chatroom": false, 
        "event_info":{
           "ext":"{\"result\":{\"successKeys\": [\"key1\",\"key2\"],\"errorKeys\":{}},\"identify\":\"\",\"is_forced\":false,\"muc_name\":\"Take\",\"need_notify\":true, \"properties\":{\"key1\": \"value1\",\"key2\": \"value2 \"}, \"operator \": \"user1\"}",
           "type":"event_none" 
        },
        "operation": "group_member_metadata_update", 
        "status": { 
            "description": "", 
            "error_code": "ok" 
        } 
    }, 
    "group_id": "632XXXX13", 
    "host": "XXXX", 
    "appkey": "XXXX#XXXX", 
    "from": "632XXXX13", 
    "to": "aaa111", 
    "eventType": "chat", 
    "msg_id": "976432657191668068", 
    "timestamp": 1644908244060 
}

好友关系操作

事件payload 中类型触发事件
roster-好友关系操作所有事件
roster:add{“operation”:“add”}添加好友
roster:remove{“operation”:“remove”}删除好友
roster:accept{“operation”:“accept”}同意好友申请。对方用户收到该事件。
roster:decline{“operation”:“decline”}拒绝好友申请。对方用户收到该事件。
roster:ban{“operation”:“ban”}拉黑好友
roster:allow{“operation”:“allow”}解除拉黑好友

添加好友

payload 字段含义:

字段数据类型含义
reasonobject/
operationStringadd:添加好友。

payload 示例:

{
    "chat_type":"roster",
    "callId":"XXXX#XXXX",
    "security":"XXXX",
    "payload":{
        "reason":"",
        "operation":"add"
        },
    "host":"XXXX",
    "appkey":"XXXX#XXXX",
    "from":"XXXX#XXXX",
    "to":"tst01",
    "eventType":"chat",
    "msg_id":"9XXXX2",
    "timestamp":1642648175092
    }

删除好友

payload 字段含义:

字段数据类型含义
roster_verString好友列表的版本号。
operationStringremove:移除好友。

payload 示例:

{
    "chat_type":"roster",
    "callId":"XXXX#XXXX736",
    "security":"2e7XXXX2d7",
    "payload":{
        "roster_ver":"003DD920ADD15B51EB0B806E83BDD97F089B0092",
        "operation":"remove"
        },
    "host":"XXXX",
    "appkey":"XXXX#XXXX",
    "from":"XXXX#XXXX",
    "to":"tst01",
    "eventType":"chat",
    "msg_id":"XXXX463736",
    "timestamp":1642648138571
    }

同意好友申请

用户发送好友申请后,对方用户同意加好友后会收到服务器发送的该事件。

payload 字段含义:

字段数据类型含义
roster_verString好友列表的版本号。
operationStringaccept:同意好友申请。

payload 示例:

{
    "chat_type":"roster",
    "callId":"XXXX#XXXX_966725899779049516",
    "security":"a2e1545231e8acf60513b50984af0c6c",
    "payload":{
        "roster_ver":"DD6E14FE5EE5A9ABC52CA86C5DE1601CF729BFD6",
        "operation":"accept"
        },
    "host":"XXXX",
    "appkey":"XXXX#XXXX",
    "from":"XXXX#XXXX",
    "to":"tst01",
    "eventType":"chat",
    "msg_id":"96XXXX516",
    "timestamp":1642648213494
    }

拒绝好友申请

用户发送好友申请后,对方用户拒绝添加好友后会收到服务器发送的该事件。

payload 字段含义:

字段数据类型含义
roster_verString好友列表的版本号。
operationStringdecline:拒绝好友申请。

payload 示例:

{
    "chat_type":"roster",
    "callId":"XXXX#XXXX_966726099692161068",
    "security":"747d6297660e57bcf38315aa98c206ac",
    "payload":{
        "roster_ver":"3D81EC24A6E732B2EB1B654AA446930DB9BAFE59",
        "operation":"remote_decline"
        },
    "host":"XXXX",
    "appkey":"XXXX#XXXX",
    "from":"XXXX#XXXX",
    "to":"tst",
    "eventType":"chat",
    "msg_id":"9XXXX68",
    "timestamp":1642648260029
    }

拉黑好友

payload 字段含义:

字段数据类型含义
operationStringban:拉黑好友。
statusobject包含 error_code
error_codeString操作失败对应的错误码。

payload 示例:

{
    "chat_type":"roster",
    "callId":"XXXX#XXXX_966725184268539960",
    "security":"00f070116668034ddecf3fb7db92087c",
    "payload":{
        "operation":"ban",
        "status":{
            "error_code":"ok"
            }
        },
    "host":"XXXX",
    "appkey":"XXXX#XXXX",
    "from":"XXXX#XXXX",
    "to":"tst",
    "eventType":"chat",
    "msg_id":"9XXXX0",
    "timestamp":1642648046912
}

解除拉黑好友

payload 字段含义:

字段数据类型含义
operationStringallow:解除拉黑好友。
statusobject包含 error_code
error_codeString操作失败对应的错误码。

payload 示例:

{
    "chat_type":"roster",
    "callId":"XXXX#XXXX_966725018736134200",
    "security":"cbe8a5f1ba384107b63ef61637f55cad",
    "payload":{
        "operation":"allow",
        "status":{
            "error_code":"ok"
            }
        },
    "host":"XXXX",
    "appkey":"XXXX#XXXX",
    "from":"XXXX#XXXX",
    "to":"tst",
    "eventType":"chat",
    "msg_id":"966725018736134200",
    "timestamp":1642648008357
}

发送会话已读回执

回调请求主要字段含义:

字段数据类型含义
chat_typeString会话已读回执。
payload.ack_message_idString会话中消息的消息 ID。
payload.type会话已读回执类型。
fromString发送已读回执的用户。
toString接收已读回执的用户。
msg_idString已读回执的消息 ID。

会话已读回执的回调请求示例:

{
"callId": "easemob-demo#testy_1252106597610555348",
"eventType": "chat",  
"chat_type": "channel_ack", 
"security": "203e3c86710ebdbd776d8aa9cc057b2d",
"payload": {
"ack_message_id": "1252106100258375636", 
"type": "channel_ack" 
},
"host": "easemob@hsb-im-msync0",
"appkey": "easemob-demo#testy",
"from": "wzy",   
"to": "wzy1",   
"msg_id": "1252106597610555348",  
"timestamp": 1709093585046
}

发送消息已读回执

回调请求主要字段含义:

字段数据类型含义
chat_typeStringread_ack 已读回执。
callIdStringcallId{appkey}_{uuid} 其中 uuid 为随机生成,作为每条回调的唯一标识。
securityString签名,格式如下: MD5(callId+secret+timestamp)。 Secret 见 Console 后台回调规则。
payloadobject包括:
- ext:消息的扩展字段、
- ack_message_id:消息 ID、
- bodies:消息体内容。
hostString服务器名称。
appkeyString你在环信管理后台注册的应用唯一标识。
fromString发送已读回执用户 ID。
toString接收已读回执用户 ID。
eventTypeStringchat:单聊。
timestamplong到环信 IM 服务器的 Unix 时间戳,单位为 ms。
msg_idString该回执消息的消息 ID。

回调请求示例:

{
    "chat_type": "read_ack",
    "callId": "XXXX#XXXX_968665325555943556",
    "security": "bd63d5fa8f72823e6d33e09a43aa4239",
    "payload": {
        "ext": {},
        "ack_message_id": "968665323572037776",
        "bodies": []
    },
    "host": "msync@ebs-ali-beijing-msync45",
    "appkey": "XXXX#XXXX",
    "from": "1111",
    "to": "2222",
    "eventType": "chat",
    "msg_id": "968665325555943556",
    "timestamp": 1643099771248
}

用户登入登出

app 用户状态分为在线和离线两种,即用户已连接到环信即时通讯 IM 服务器即为在线,与环信即时通讯 IM 服务器断开连接即为离线。用户登入和登出即时通讯 IM 会导致在线状态发生变化。某些情况下,例如,进入隧道等特殊网络情况,依赖心跳超时,用户进入离线状态最长会有 5 分钟延时。

用户登入、主动登出或被踢出即时通讯 IM 时,服务器会向你的 app server 同步用户的在线或离线状态以及状态变更原因,包括 loginlogoutreplaced。收到回调后,app server 会向即时通讯服务器返回响应:

  • 若 HTTP 状态码为 200,表示用户状态成功同步至你的 app server 。你可以自行进行业务处理。
  • 若 60 秒内未收到响应,即时通讯 IM 服务器会重新发送回调。若仍未收到响应,即时通讯 IM 服务器则不再发送回调,会记录一次回调发送失败。

若在短时间内存在大量的响应失败,即时通讯 IM 服务器则停止接收你的 app server 的响应,你需要在环信控制台的 即时通讯 > 功能配置 > 消息回调 下的发送后回调窗口修改回调地址。

你可以通过登入登出回调实时监控用户在线、离线状态以及状态变更原因(登入,登出和被踢);如应用中需要实时展示用户在线、离线状态时,可通过此服务来实现。

  • 登入(login):app 用户与环信即时通讯 IM 服务器建立连接。
  • 登出(logout):app 用户退出登录导致与环信即时通讯 IM 服务器的连接断开。
  • 踢用户(replaced):可能是用户账号被开发者从服务端强制下线,或者 app 用户在达到最大登录设备数时继续登录其他设备,则其中一端设备会被踢出,导致与环信即时通讯 IM 服务器的连接断开。多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。
事件主要字段触发事件
userStatus-用户在线状态变更事件
userStatus:login{“status”:“online”,”reason“:“login”}用户登录
userStatus:logout{“status”:“offline”,”reason“:“logout”}用户登出
userStatus:replaced{“status”:“offline”,”reason“:“replaced”}用户被踢

用户登录

回调请求主要字段含义:

字段数据类型含义
callIdStringcallId{appkey}_{uuid} 其中 uuid 为随机生成,作为每条回调的唯一标识。
reasonobjectlogin,用户登录。
securityString签名,格式如下: MD5(callId+secret+timestamp)。 Secret 见 Console 后台回调规则。
osString设备类型。
ipString用户登录 IP。
hostString服务器名称。
appkeyString你在环信管理后台注册的应用唯一标识。
userString登录用户识别号,格式为 {app key_username@easemob.com/device operating system_device ID},其中 @easemob.com 为固定字符串,device ID 由 SDK 随机生成。
versionStringSDK 版本号。
timestamplong登录请求到环信 IM 服务器的 Unix 时间戳,单位为 ms。
statusStringonline,在线。

回调请求示例:

{
    "callId":"XXXX#XXXX_25b64a81-1376-4669-bb3d-178449a8f11b",
    "reason":"login",
    "security":"2c6dd77e61b8f26801627fdaadca893e",
    "os":"ios",
    "ip":"XXXX",
    "host":"XXXX",
    "appkey":"XXXX#XXXX",
    "user":"XXXX#XXXX_XXXX@easemob.com/ios_6d580737-db3a-d2b5-da18-b6045ffd195b",
    "version":"3.8.9.1",
    "timestamp":1642585154644,
    "status":"online"
}

用户登出

回调请求主要字段含义:

字段数据类型含义
callIdStringcallId{appkey}_{uuid} 其中 uuid 为随机生成,作为每条回调的唯一标识。
reasonobjectlogout 该用户登出账号。
securityString签名,格式如下: MD5(callId+secret+timestamp)。Secret 见 Console 后台回调规则。
osString设备类型。
ipString用户登录 IP。
hostString服务器名称。
appkeyString你在环信管理后台注册的应用唯一标识。
userString登录用户识别号,格式为 {app key_username@easemob.com/device operating system_device ID},其中 @easemob.com 为固定字符串,device ID 由 SDK 随机生成。
versionStringSDK 版本号。
timestamplong请求到环信 IM 服务器的 Unix 时间戳,单位为 ms。
statusStringoffline,离线。

回调请求示例:

{
    "callId":"XXXX#XXXX_25b54a81-1376-4669-bb3d-178339a8f11b",
    "reason":"logout",
    "security":"2c7dd77e61b8f26801627fdaadca987e",
    "os":"ios",
    "ip":"XXXX",
    "host":"XXXX",
    "appkey":"XXXX#XXXX",
    "user":"XXXX#XXXX_XXXX@easemob.com/ios_6d580737-db3a-d2b5-da18-b6045ffd195b",
    "version":"3.8.9.1",
    "timestamp":1642648914742,
    "status":"offline"
}

用户登出(被其他设备踢掉)

回调请求主要字段含义:

字段数据类型含义
callIdStringcallId{appkey}_{uuid} 其中 uuid 为随机生成,作为每条回调的唯一标识。
reasonobjectreplaced,该用户登出,原因是被其他设备登录踢掉。
securityString签名,格式如下: MD5(callId+secret+timestamp)。Secret 见 Console 后台回调规则。
osString设备类型。
ipString用户登录 IP。
hostString服务器名称。
appkeyString你在环信管理后台注册的应用唯一标识。
userString登录用户识别号,格式为 {app key_username@easemob.com/device operating system_device ID},其中 @easemob.com 为固定字符串,device ID 由 SDK 随机生成。
versionStringSDK 版本号。
timestamplong请求到环信 IM 服务器的 Unix 时间戳,单位为毫秒 。
statusStringoffline,离线。

回调请求示例:

{
    "callId":"XXXX#XXXX_260ae3eb-ba31-4f01-9a62-8b3b05f3a16c",
    "reason":"replaced",
    "security":"0ac500b1a1e44fe76dbfdc664cbaa76b",
    "os":"ios",
    "ip":"223.71.97.198:52709",
    "host":"msync@ebs-ali-beijing-msync40",
    "appkey":"XXXX#XXXX",
    "user":"XXXX#XXXX_XXXX@easemob.com/ios_a5fa01fd-b5a4-84d5-ebeb-bf10e8950442",
    "version":"3.8.9.1",
    "timestamp":1642648955563,
    "status":"offline"
}

敏感词监测

回调请求主要字段含义:

字段数据类型含义
callIdStringcallId{appkey}_{uuid},其中 uuid 为随机生成,作为每条回调的唯一标识。
alertReasonString敏感词是否合规:
- through:表示敏感词为合规内容;
- intercepted:表示敏感词为违规词,包含敏感词的消息被拦截。
- replaced:表示敏感词为违规词,使用 *** 代替。
contentReceiverString内容接收方的用户 ID。
eventTypeString事件类型,用于标识为敏感词检测还是其他类型的事件。
sensitiveWordsList敏感词内容。
contentOwnerString内容发送方的用户 ID。
securityString签名,格式如下: MD5(callId+secret+timestamp)secret 详见 Console 后台的回调规则配置
contentUriString消息唯一标识,格式为 msync:msgId。
hostString服务器名称。
appkeyString即时通讯服务分配给每个应用的唯一标识,由 orgnameappname 参数的值组成。
contentTypeString内容类型,目前为 message,表示为消息。
timestampLong环信 IM 服务器接收到此消息的 Unix 时间戳,单位为毫秒。
chatTypeString会话类型,默认全选:
- chat:单聊回调;
- groupchat:群聊回调包含了群组和聊天室的消息回调;
- notify:通知回调包含了 Thread 和 Reaction 的回调,需要结合 payload 中的 type 字段确定具体类型。
statusString对敏感词或消息的处理动作。
- pass:敏感词为合规内容,包含敏感词的消息通过审核。
- refuse:敏感词为违规词,对包含敏感词的消息进行拦截,不下发。
- replace:敏感词为违规词,由 *** 替换。
  • 敏感词审核通过的回调请求示例:
{
    "callId": "XXXX#XXXX_0e1b4c8e-a95c-4db1-85f3-2cbf6197d73c",
    "alertReason": "through",
    "contentReceiver": "XXXX#XXXX_test1@easemob.com",
    "eventType": "keyword_alert",
    "sensitiveWords": [],
    "contentOwner": "XXXX#XXXX_test2@easemob.com",
    "security": "36e8e82243ce96e1ac3f530fb815cef8",
    "contentUri": "msync:1218049757197370792",
    "host": "msync@ebs-ali-beijing-msync62",
    "appkey": "XXXX#XXXX",
    "contentType": "message",
    "timestamp": 1701164109042,
    "chatType": "chat:user:text",
    "status": "pass"
}
  • 包含敏感词的消息被直接拦截的回调请求示例:
{
    "callId": "XXXX#XXXX_16396528-2a9c-4d96-8219-15723e436fd6",
    "alertReason": "intercepted",
    "contentReceiver": "XXXX#XXXX_test1@easemob.com",
    "eventType": "keyword_alert",
    "sensitiveWords": [
        "12"
    ],
    "contentOwner": "XXXX#XXXX_test2@easemob.com",
    "security": "47ce006af8a8f9ad26acf125244093ab",
    "contentUri": "msync:1232040174779635136",
    "host": "msync@ebs-ali-beijing-msync68",
    "appkey": "XXXX#XXXX",
    "contentType": "message",
    "timestamp": 1704421506954,
    "chatType": "chat:user:text",
    "status": "refuse"
}
  • 敏感词使用 *** 替换的回调请求示例:
{
    "callId": "XXXX#XXXX_3a49331a-e554-48d2-bacb-797739020e2a",
    "alertReason": "intercepted",
    "contentReceiver": "XXXX#XXXX_test1@easemob.com",
    "eventType": "keyword_alert",
    "sensitiveWords": [
        "12"
    ],
    "contentOwner": "XXXX#XXXX_test2@easemob.com",
    "security": "e8b50122636487eacb55ada441f8f3cb",
    "contentUri": "msync:1218049329273505228",
    "host": "msync@ebs-ali-beijing-msync71",
    "appkey": "easemob-demo#restys",
    "contentType": "message",
    "timestamp": 1701164009349,
    "chatType": "chat:user:text",
    "status": "replace"
}

Reaction 回调事件

回调请求主要字段含义:

字段数据类型含义
chat_typeString会话类型(默认全选):
- "chat":单聊回调;
- "groupchat":群聊回调包含了群组和聊天室的消息回调;
- "notify":通知回调包含了 Thread 和 Reaction 的回调,需要结合 payload 中的 type 字段确定具体类型。|
payload.typeString固定值 "reaction"。
payload.channel_typeString会话类型:
- "chat":单聊。
- "groupchat":群聊。
payload.data.tsLong当前 Reaction 操作的 Unix 时间戳,单位为毫秒。
payload.numNumber操作次数。
payload.dataListReaction 操作详细内容。
payload.data.toString消息接收方。
payload.data.reactionsListReaction 通知数据结构。
payload.data.reactions.reactionStringReaction 表情。
payload.data.reactions.userListListReaction 表情操作人员列表。
payload.data.reactions.countNumberReaction 表情被操作次数。
payload.data.reactions.opListReaction 当前操作详情。
payload.data.reactions.op.reactionTypeStringReaction 当前操作类型。
payload.data.reactions.op.operatorStringReaction 当前操作人。 |

其他字段见 公共参数

回调请求示例:

{
    "chat_type": "notify",
    "payload":
    {
        "data":
        [
            {
                "messageId": "99XXXX32",
                "from": "user2",
                "reactions":
                [
                    {
                        "reaction": "test",
                        "userList":
                        [
                            "user2"
                        ],
                        "count": 1
                    },
                    {
                        "op":
                        [
                            {
                                "reactionType": "create",
                                "operator": "user2"
                            }
                        ],
                        "reaction": "test-1",
                        "userList":
                        [
                            "user2"
                        ],
                        "count": 1
                    }
                ],
                "to": "user3",
                "channel_type": "chat",
                "ts": 1648722783700
            }
        ],
        "num": 2,
        "channel_type": "chat",
        "type": "reaction"
    },
    "host": "XXXX",
    "appkey": "XXXX#XXXX",
    "from": "user1",
    "to": "user2",
    "eventType": "chat",
    "msg_id": "99XXXX56",
    "timestamp": 1648722784819
}

Thread 回调事件

主要字段含义:

字段数据类型含义
chat_typeString会话类型(默认全选):
- "chat":单聊回调;
- "groupchat":群聊回调包含了群组和聊天室的消息回调;
- "notify":通知回调包含了 Thread 和 Reaction 的回调,需要结合 payload 中的 type 字段确定具体类型。
payload.typeString固定值 "thread"。
payload.dataJSONThread 操作数据结构。
payload.data.idStringThread 的 ID。
payload.data.nameStringThread 名称。
payload.data.fromStringThread 消息的操作人。
payload.data.operationStringThread 发送消息的事件:update_msg:消息更新。
payload.data.msg_parent_idString创建 Thread 的消息 ID,可能为空。
payload.data.message_countNumberThread 消息的总数。
payload.data.muc_parent_idString创建 Thread 时所在的群组 ID。
payload.data.last_messageJSON最近一条消息的内容。

其他字段见 公共参数

回调请求示例:

{
    "chat_type": "notify",
    "payload":
    {
        "data":
        {
            "msg_parent_id": "98XXXX12",
            "name": "test",
            "from": "user1",
            "last_message":
            {
                "payload":
                {
                    "ext":
                    {},
                    "bodies":
                    [
                        {
                            "msg": "thread test",
                            "type": "txt"
                        }
                    ],
                    "meta":
                    {
                        "thread":
                        {
                            "msg_parent_id": "98XXXX12",
                            "thread_name": "test",
                            "muc_parent_id": "user2"
                        }
                    },
                    "from": "user1",
                    "to": "17XXXX93",
                    "type": "groupchat"
                },
                "from": "XXXX#XXXX_yifan2",
                "id": "10XXXX28",
                "to": "XXXX#XXXX_17XXXX93",
                "timestamp": 1651029973455
            },
            "id": "17XXXX93",
            "message_count": 49,
            "operation": "update_msg",
            "muc_parent_id": "user2",
            "timestamp": 1651029973455
        },
        "type": "thread"
    },
    "host": "XXXX",
    "appkey": "XXXX#XXXX",
    "from": "admin",
    "to": "user2",
    "eventType": "chat",
    "msg_id": "10XXXX24",
    "timestamp": 1651029973480
}