企业会话回调
来自企业号开发者接口文档
目录
回调企业IM
当成员在微信端发消息,或者更改会话成员时,企业号会推送相应的事件给企业。考虑到消息量会可能较大,企业号在用http协议推送时,会打上keep-alive选项,如果企业支持则保持长连接,此连接根据消息量可以有多个。
注意事项
1、 回调时,一个数据包可包含多个消息或事件(多个Item节点)
2、 当回调失败时(连接失败、请求超时等),最大重试间隔20分钟,最大重试时长1天
3、 企业在收到数据包时,需回复XML里的PackageId节点值(注意回复明文即可,无需加密),表示成功接收,否则企业号认为回调失败。PackageId企业内唯一
报文格式如下
解密前:
<xml> <Encrypt><![CDATA[ENCRYPT_DATA]]></Encrypt> <ToUserName>CORPID</ToUserName> <AgentType>chat</AgentType> </xml>
解密后:
<xml> <AgentType>chat</AgentType> <ToUserName>CORPID</ToUserName> <ItemCount>2</ItemCount> <PackageId>3156175696255</PackageId> <Item> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[update_chat]]></Event> <Name><![CDATA[企业应用中心]]></Name> <Owner><![CDATA[zhangsan]]></Owner> <AddUserList><![CDATA[zhaoliu]]></AddUserList> <DelUserList><![CDATA[lisi|wangwu]]></DelUserList> <ChatId><![CDATA[235364212115767297]]></ChatId> </Item> <Item> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[create_chat]]></Event> <ChatInfo> <ChatId><![CDATA[235364212115767297]]></ChatId> <Name><![CDATA[企业应用中心]]></Name> <Owner>zhangsan</Owner> <UserList>zhangsan|lisi|wangwu</UserList> </ChatInfo> </Item> </xml>
参数 | 说明 |
---|---|
参数 | 描述 |
AgentType | 应用类型,此时固定为:chat |
ToUserName | 企业号CorpID |
ItemCount | Item数量 |
Item | Item,会话事件或接收消息XML节点 |
PackageId | 回调包ID,uint64类型,企业内唯一。 |
- 企业需回复PackageId节点值如下:
3156175696255
会话事件
创建会话
<Item> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[create_chat]]></Event> <ChatInfo> <ChatId><![CDATA[235364212115767297]]></ChatId> <Name><![CDATA[企业应用中心]]></Name> <Owner>zhangsan</Owner> <UserList>zhangsan|lisi|wangwu</UserList> </ChatInfo> </Item>
参数 | 说明 |
---|---|
FromUserName | 操作成员UserID |
CreateTime | 消息创建时间(整型) |
MsgType | 消息类型,此时固定为:event |
Event | 事件类型,此时固定为:create_chat |
ChatId | 会话id |
Name | 会话标题 |
Owner | 管理员userid |
UserList | 会话成员列表,成员用userid标识,成员间以竖线“|”分隔 |
修改会话
<Item> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[update_chat]]></Event> <Name><![CDATA[企业应用中心]]></Name> <Owner><![CDATA[zhangsan]]></Owner> <AddUserList><![CDATA[zhaoliu]]></AddUserList> <DelUserList><![CDATA[lisi|wangwu]]></DelUserList> <ChatId><![CDATA[235364212115767297]]></ChatId> </Item>
参数 | 说明 |
---|---|
FromUserName | 操作成员UserID |
CreateTime | 消息创建时间(整型) |
MsgType | 消息类型,此时固定为:event |
Event | 事件类型,此时固定为:update_chat |
Name | 会话名称 |
Owner | 会话所有者(管理员) |
AddUserList | 会话新增成员列表,成员间以竖线分隔,如:zhangsan|lisi |
DelUserList | 会话删除成员列表,成员间以竖线分隔,如:zhangsan|lisi |
ChatId | 会话id |
退出会话
<Item> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[quit_chat]]></Event> <ChatId><![CDATA[235364212115767297]]></ChatId> </Item>
参数 | 说明 |
---|---|
FromUserName | 操作成员UserID |
CreateTime | 消息创建时间(整型) |
MsgType | 消息类型,此时固定为:event |
Event | 事件类型,此时固定为:quit_chat |
ChatId | 会话id |
接收消息
text消息
<Item> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[this is a test]]></Content> <MsgId>1234567890123456</MsgId> <Receiver> <Type>single</Type> <Id>lisi</Id> </Receiver> </Item>
参数 | 说明 |
---|---|
FromUserName | 成员UserID |
CreateTime | 消息创建时间(整型) |
MsgType | 消息类型,此时固定为:text |
Content | 消息内容,支持表情(下载微信表情转换表) |
MsgId | 消息id,64位整型 |
Receiver | 接收人 |
Type | 接收人类型:single|group,分别表示:群聊|单聊 |
Id | 接收人的值,为userid|chatid,分别表示:成员id|会话id |
image消息
<Item> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[image]]></MsgType> <PicUrl><![CDATA[this is a url]]></PicUrl> <MediaId><![CDATA[media_id]]></MediaId> <MsgId>1234567890123456</MsgId> <Receiver> <Type>single</Type> <Id>lisi</Id> </Receiver> </Item>
参数 | 说明 |
---|---|
FromUserName | 成员UserID |
CreateTime | 消息创建时间(整型) |
MsgType | 消息类型,此时固定为:image |
PicUrl | 图片链接 |
MediaId | 图片media_id,可以调用获取素材文件接口拉取数据 |
MsgId | 消息id,64位整型 |
Receiver | 接收人 |
Type | 接收人类型:single|group,分别表示:群聊|单聊 |
Id | 接收人的值,为userid|chatid,分别表示:成员id|会话id |
voice消息
<Item> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[voice]]></MsgType> <MediaId><![CDATA[media_id]]></MediaId> <MsgId>1234567890123456</MsgId> <Receiver> <Type>single</Type> <Id>lisi</Id> </Receiver> </Item>
参数 | 说明 |
---|---|
FromUserName | 成员UserID |
CreateTime | 消息创建时间(整型) |
MsgType | 消息类型,此时固定为:voice |
MediaId | 语音media_id,可以调用获取素材文件接口拉取数据 |
MsgId | 消息id,64位整型 |
Receiver | 接收人 |
Type | 接收人类型:single|group,分别表示:群聊|单聊 |
Id | 接收人的值,为userid|chatid,分别表示:用户id|会话id |
file消息
<Item> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[file]]></MsgType> <MediaId><![CDATA[media_id]]></MediaId> <MsgId>1234567890123456</MsgId> <Receiver> <Type>single</Type> <Id>lisi</Id> </Receiver> </Item>
参数 | 说明 |
---|---|
FromUserName | 成员UserID |
CreateTime | 消息创建时间(整型) |
MsgType | 消息类型,此时固定为:file |
MediaId | 文件media_id,可以调用获取素材文件接口拉取数据 |
MsgId | 消息id,64位整型 |
Receiver | 接收人 |
Type | 接收人类型:single|group,分别表示:群聊|单聊 |
Id | 接收人的值,为userid|chatid,分别表示:用户id|会话id |
link消息
<Item> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[link]]></MsgType> <Title><![CDATA[TITLE]]></Title> <Description><![CDATA[DESCRIPTION]]></Description> <Url><![CDATA[URL]]></Url> <PicUrl><![CDATA[PIC_URL]]></PicUrl> <MsgId>1234567890123456</MsgId> <Receiver> <Type>single</Type> <Id>lisi</Id> </Receiver> </Item>
参数 | 说明 |
---|---|
FromUserName | 成员UserID |
CreateTime | 消息创建时间(整型) |
MsgType | 消息类型,此时固定为:link |
Title | 标题 |
Description | 描述 |
Url | 链接 |
PicUrl | 图片链接 |
MsgId | 消息id,64位整型 |
Receiver | 接收人 |
Type | 接收人类型:single|group,分别表示:群聊|单聊 |
Id | 接收人的值,为userid|chatid,分别表示:用户id|会话id |
location消息
<Item> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[location]]></MsgType> <Location_X>23.134521</Location_X> <Location_Y>113.358803</Location_Y> <Scale>20</Scale> <Label><![CDATA[位置信息]]></Label> <MsgId>1234567890123456</MsgId> <Receiver> <Type>single</Type> <Id>lisi</Id> </Receiver> </Item>
参数 | 说明 |
---|---|
FromUserName | 成员UserID |
CreateTime | 消息创建时间(整型) |
MsgType | 消息类型,此时固定为:location |
Location_X | 地理位置纬度 |
Location_Y | 地理位置经度 |
Scale | 地图缩放大小 |
Label | 地理位置信息 |
MsgId | 消息id,64位整型 |
Receiver | 接收人 |
Type | 接收人类型:single|group,分别表示:群聊|单聊 |
Id | 接收人的值,为userid|chatid,分别表示:用户id|会话id |
服务事件
<Item> <FromUserName><![CDATA[UserID]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[subscribe]]></Event> </Item>
参数 | 说明 |
---|---|
FromUserName | 成员UserID |
CreateTime | 消息创建时间(整型) |
MsgType | 消息类型,此时固定为:event |
Event | 事件类型,subscribe(订阅)、unsubscribe(取消订阅) |