业务方通过企业微信提供的sdk,可以进行会话记录数据的获取、媒体数据的获取。
linux环境 SDK:
下载 SDK v2.0 [更新时间:2024-6-6 更新特性:修复一些已知问题]
windows环境 SDK:
下载 SDK v2.0[更新时间:2024-6-6 更新特性:修复一些已知问题]
以下是交互时序图,本文重点介绍sdk的内容。sdk包括如下接口:
第一步:
第二步:
通过本sdk接口来获取公司一段时间内的会话记录。一次拉取调用上限1000条会话记录,可以通过分页拉取的方式来依次拉取。调用频率不可超过600次/分钟。
请求参数说明:
注:获取会话记录内容不能超过5天,如果企业需要全量数据,则企业需要定期拉取聊天消息。返回的ChatDatas内容为json格式。
ChatDatas详解:
返回参数说明:
encrypt_random_key内容解密说明:
encrypt_random_key是使用企业在管理端填写的公钥(使用模值为2048bit的秘钥),采用RSA加密算法进行加密处理后base64 encode的内容,加密内容为企业微信产生。RSA使用PKCS1。
企业通过GetChatData获取到会话数据后:
a) 需首先对每条消息的encrypt_random_key内容进行base64 decode,得到字符串str1.
b) 使用publickey_ver指定版本的私钥,使用RSA PKCS1算法对str1进行解密,得到解密内容str2.
c) 得到str2与对应消息的encrypt_chat_msg,调用下方描述的DecryptData接口,即可获得消息明文。
请求参数说明:
本小节对content对应的消息格式进行说明。消息类型支持:文本、图片、语音、视频、位置等多种消息类型。
文本
参数说明:
注:
机器人与外部联系人的账号都是external_userid,其中机器人的external_userid是以"wb"开头,例如:"wbjc7bDwAAJVylUKpSA3Z5U11tDO4AAA",外部联系人的external_userid以"wo"或"wm"开头。
如果是机器人发出的消息,可以通过openapi拉取机器人详情:如何获取机器人详情?
如果是外部联系人发出的消息,可以通过openapi拉取外部联系人详情:如何获取外部联系人详情?
如果是引用/回复消息,发消息的用户的语言设置是中文,消息内容前面会加上“这是一条引用/回复消息:”,如果发消息的用户的语言设置是英文,消息内容的前面会加上“This is a quote/reply:”。
如:
图片
参数说明:
注:以下消息类型不再描述msgid、action、from、tolist、roomid、msgtime等通用字段,着重描述msgtype以及不同消息类型对应的json格式的消息内容。
撤回消息
同意会话聊天内容
语音
视频
名片
位置
表情
示例图:
文件
链接
小程序消息
示例图:
会话记录消息
会话记录消息item
待办消息
投票消息
填表消息
红包消息
会议邀请消息
会议控制消息
切换企业日志
参数说明:
注:切换企业日志不是真正的消息,与上述消息结构不完全相同。
在线文档消息
MarkDown格式消息
图文消息
日程消息
混合消息
音频存档消息
注:如果音频过程中包括文档演示或屏幕共享,meeting_voice_call内会包含demofiledata数组跟sharescreendata数组,对应音频过程中的多次文档演示跟屏幕共享。
音频共享文档消息
互通红包消息
视频号消息
消息容量评估:以平均群大小评估,每条消息平均大小约1k;最大群消息评估,每条消息约50k
音视频通话
微盘文件
针对图片、文件等媒体数据,提供sdk接口拉取数据内容。
请求参数说明:
返回参数说明:
通过robot_id获取机器人的名称和创建者
请求方式:GET(HTTPS)
请求地址:https://qyapi.weixin.qq.com/cgi-bin/msgaudit/get_robot_info?access_token=ACCESS_TOKEN&robot_id=ROBOT_ID
参数说明:
权限说明:
只能通过会话存档的access_token获取。
返回结果:
参数说明: