企业微信 API
企业内部开发第三方应用开发智慧硬件开发
企业内部开发第三方应用开发智慧硬件开发
  1. 获取会话内容
  • 快速入门
    • 概述
    • 简易教程
  • 开发指南
    • 基本概念介绍
    • 开发前必读
    • 回调配置
      • 回调配置
      • 回调配置-支持Http Get请求验证URL有效性
      • 回调配置-支持Http Post请求接收业务数据
      • 回调配置-获取企业微信服务器的ip段
    • 自建应用与第三方应用的对接
      • userid转换
      • external_userid转换
    • 获取access_token
      GET
    • 获取企业微信API域名IP段
      GET
  • 通讯录管理
    • 概述
    • 通讯录同步接口调整
    • 成员管理
      • 创建成员
      • 读取成员
      • 更新成员
      • 删除成员
      • 批量删除成员
      • 获取部门成员
      • 获取部门成员详情
      • userid与openid互换-userid转openid
      • userid与openid互换-openid转userid
      • 二次验证
      • 邀请成员
      • 获取加入企业二维码
      • 手机号获取userid
      • 邮箱获取userid
      • 获取成员ID列表
    • 部门管理
      • 获取单个部门详情
      • 创建部门
      • 更新部门
      • 删除部门
      • 获取部门列表
      • 获取子部门ID列表
    • 标签管理
      • 创建标签
      • 更新标签名字
      • 删除标签
      • 获取标签成员
      • 增加标签成员
      • 删除标签成员
      • 获取标签列表
    • 异步批量接口
      • 概述
      • 增量更新成员
      • 全量覆盖成员
      • 全量覆盖部门
      • 获取异步任务结果
    • 通讯录回调通知
      • 概述
      • 成员变更通知
      • 部门变更通知
      • 标签变更通知
      • 异步任务完成通知
    • 互联企业
      • 获取应用的可见范围
      • 获取互联企业成员详细信息
      • 获取互联企业部门成员
      • 获取互联企业部门成员详情
      • 获取互联企业部门列表
    • 异步导出接口
      • 概述
      • 导出任务完成通知
      • 导出成员
      • 导出成员详情
      • 导出部门
      • 导出标签成员
      • 获取导出结果
  • 客户联系
    • 概述
    • 企业服务人员管理
      • 结束语定义
      • 附录
      • 获取配置了客户联系功能的成员列表
      • 客户联系「联系我」管理-配置客户联系「联系我」方式
      • 客户联系「联系我」管理-更新企业已配置的「联系我」方式
      • 客户联系「联系我」管理-获取企业已配置的「联系我」方式
      • 客户联系「联系我」管理-获取企业已配置的「联系我」列表
      • 客户联系「联系我」管理-删除企业已配置的「联系我」方式
      • 客户联系「联系我」管理-结束临时会话
    • 客户管理
      • 客户联系规则组管理
        • 客户联系规则组管理-获取规则组列表
        • 客户联系规则组管理-获取规则组详情
        • 客户联系规则组管理-获取规则组管理范围
        • 客户联系规则组管理-创建新的规则组
        • 客户联系规则组管理-编辑规则组及其管理范围
        • 客户联系规则组管理-删除规则组
      • 获取客户列表
      • 获取客户详情
      • 批量获取客户详情
      • 修改客户备注信息
    • 客户标签管理
      • 管理企业标签
        • 说明
        • 管理企业标签-获取企业标签库
        • 管理企业标签-添加企业客户标签
        • 管理企业标签-编辑企业客户标签
        • 管理企业标签-删除企业客户标签
      • 管理企业规则组下的客户标签
        • 管理企业规则组下的客户标签-获取指定规则组下的企业客户标签
        • 管理企业规则组下的客户标签-为指定规则组创建企业客户标签
        • 管理企业规则组下的客户标签-编辑指定规则组下的企业客户标签
        • 管理企业规则组下的客户标签-删除指定规则组下的企业客户标签
      • 编辑客户企业标签
    • 在职继承
      • 分配在职成员的客户
      • 查询客户接替状态
      • 分配在职成员的客户群
    • 离职继承
      • 获取待分配的离职成员列表
      • 分配离职成员的客户
      • 查询客户接替状态
      • 分配离职成员的客户群
    • 客户群管理
      • 获取客户群列表
      • 获取客户群详情
      • 客户群opengid转换
    • 联系我与客户入群方式
      • 客户联系「联系我」管理
        • 权限说明
        • 结束语定义
        • 配置客户联系「联系我」方式
        • 获取企业已配置的「联系我」方式
        • 获取企业已配置的「联系我」列表
        • 更新企业已配置的「联系我」方式
        • 删除企业已配置的「联系我」方式
        • 结束临时会话
      • 客户群「加入群聊」管理
        • 权限说明
        • 配置客户群进群方式
        • 获取客户群进群方式配置
        • 更新客户群进群方式配置
        • 删除客户群进群方式配置
    • 客户朋友圈
      • 概述
      • 企业发表内容到客户的朋友圈
        • 企业发表内容到客户的朋友圈-创建发表任务
        • 企业发表内容到客户的朋友圈-获取任务创建结果
      • 获取客户朋友圈全部的发表记录
        • 获取客户朋友圈全部的发表记录-获取企业全部的发表列表
        • 获取客户朋友圈全部的发表记录-获取客户朋友圈企业发表的列表
        • 获取客户朋友圈全部的发表记录-获取客户朋友圈发表时选择的可见范围
        • 获取客户朋友圈全部的发表记录-获取客户朋友圈发表后的可见客户列表
        • 获取客户朋友圈全部的发表记录-获取客户朋友圈的互动数据
      • 客户朋友圈规则组管理
        • 客户朋友圈规则组管理-获取规则组列表
        • 客户朋友圈规则组管理-获取规则组详情
        • 客户朋友圈规则组管理-获取规则组管理范围
        • 客户朋友圈规则组管理-创建新的规则组
        • 客户朋友圈规则组管理-编辑规则组及其管理范围
        • 客户朋友圈规则组管理-删除规则组
      • 停止发表企业朋友圈
    • 消息推送
      • 获取企业的全部群发记录
        • 概述
        • 获取企业的全部群发记录-获取群发记录列表
        • 获取企业的全部群发记录-获取群发成员发送任务列表
        • 获取企业的全部群发记录-获取企业群发成员执行结果
      • 创建企业群发
      • 发送新客户欢迎语
      • 入群欢迎语素材管理-添加
      • 入群欢迎语素材管理-编辑
      • 入群欢迎语素材管理-获取
      • 入群欢迎语素材管理-删除
      • 提醒成员群发
      • 停止企业群发
    • 统计管理
      • 获取「群聊数据统计」数据-按群主聚合的方式
      • 获取「群聊数据统计」数据-按自然日聚合的方式
      • 获取「联系客户统计」数据
    • 变更回调
      • 概述
      • 事件格式
    • 管理商品图册
      • 概述
      • 创建商品图册
      • 获取商品图册
      • 删除商品图册
      • 获取商品图册列表
      • 编辑商品图册
    • 管理聊天敏感词
      • 概述
      • 管理聊天敏感词-新建敏感词规则
      • 管理聊天敏感词-获取敏感词规则列表
      • 管理聊天敏感词-获取敏感词规则详情
      • 管理聊天敏感词-修改敏感词规则
      • 管理聊天敏感词 删除敏感词规则
    • 上传附件资源
  • 微信客服
    • 概述
    • 回调通知
    • 客服帐号管理
      • 添加客服帐号
      • 删除客服帐号
      • 修改客服帐号
      • 获取客服帐号列表
      • 获取客服帐号链接
    • 接待人员管理
      • 添加接待人员
      • 添加接待人员_v1
      • 删除接待人员
      • 获取接待人员列表
    • 会话分配与消息收发
      • 分配客服会话
        • 概述
        • 分配客服会话-获取会话状态
        • 分配客服会话-变更会话状态
      • 接收消息和事件-读取消息
      • 发送消息
      • 发送事件响应消息
    • 「升级服务」配置
      • 什么是升级服务
      • 「升级服务」配置-获取配置的专员与客户群
      • 「升级服务」配置-为客户升级为专员服务
      • 「升级服务」配置-为客户升级为客户群服务
      • 「升级服务」配置-为客户取消推荐
    • 其他基础信息获取
      • 获取客户基础信息
    • 统计管理
      • 获取「客户数据统计」接待人员明细数据
      • 获取「客户数据统计」企业汇总数据
    • 机器人管理
      • 知识库分组管理
        • 知识库分组管理
        • 添加分组
        • 删除分组
        • 修改分组
        • 获取分组列表
      • 知识库问答管理
        • 知识库问答管理
        • 附录-问答附件类型
        • 添加问答
        • 删除问答
        • 修改问答
        • 获取问答列表
  • 身份验证
    • 网页授权登录
      • 开始开发
      • 构造网页授权链接
      • 获取访问用户身份
      • 获取访问用户敏感信息
    • 扫码授权登录
      • 开始开发
      • 构造扫码登录链接
      • 获取访问用户身份
  • 应用管理
    • 概述
    • 自定义菜单
      • 说明
      • 创建菜单
      • 获取菜单
      • 删除菜单
    • 设置工作台自定义展示
      • 模版类型数据结构
      • 说明
      • 修改设置工作台自定义开关事件推送
      • 设置工作台自定义展示-设置应用在工作台展示的模版
      • 设置工作台自定义展示-获取应用在工作台展示的模版
      • 设置工作台自定义展示-设置应用在用户工作台展示的数据
    • 获取应用-获取指定的应用详情
    • 获取应用-获取access_token对应的应用列表
    • 设置应用
  • 消息推送
    • 概述
    • 接收消息与事件
      • 消息格式
      • 事件格式
      • 被动回复消息格式
      • 概述
        • 概述
        • 概述-验证URL有效性
        • 概述-使用接收消息
        • 概述-获取企业微信服务器的ip段
    • 发送消息到群聊会话
      • 概述
      • 创建群聊会话
      • 修改群聊会话
      • 获取群聊会话
      • 应用推送消息
    • 互联企业消息推送
      • 接受消息与事件
      • 发送应用消息
    • 家校消息推送
      • 发送「学校通知」
    • 发送应用消息
      • 消息类型
      • 发送应用消息
    • 更新模版卡片消息
    • 撤回应用消息
  • 素材管理
    • 概述
    • 异步上传临时素材
      • 回调异步任务结果
      • 查询异步任务结果
      • 生成异步上传任务
    • 上传临时素材
    • 上传图片
    • 获取临时素材
    • 获取高清语音素材
  • OA
    • 打卡
      • 获取企业所有打卡规则
      • 获取员工打卡规则
      • 获取打卡记录数据
      • 获取打卡日报数据
      • 获取打卡月报数据
      • 获取打卡人员排班信息
      • 为打卡人员排班
      • 录入打卡人员人脸信息
      • 获取设备打卡数据
      • 为打卡人员补卡
    • 审批
      • 概述
      • 审批申请状态变化回调通知
      • 审批流程引擎
        • 概述
        • 查询自建应用审批单当前状态
      • 获取审批模板详情
      • 提交审批申请
      • 批量获取审批单号
      • 获取审批申请详情
      • 获取审批数据(旧)
      • 获取企业假期管理配置
      • 获取成员假期余额
      • 修改成员假期余额
      • 创建审批模板
      • 更新审批模板
    • 汇报
      • 概述
      • 导出汇报文档
        • 生成导出任务
        • 查询导出结果
      • 批量获取汇报记录单号
      • 获取汇报记录详情
      • 获取汇报统计数据
    • 自建应用
      • 审批流程引擎
    • 会议室
      • 说明
      • 概述
      • 回调事件
      • 会议室管理
        • 会议室管理-添加会议室
        • 会议室管理-查询会议室
        • 会议室管理-编辑会议室
        • 会议室管理-删除会议室
      • 会议室预订管理
        • 附录
        • 会议室预定管理 查询会议室的预定信息
        • 会议室预定管理 预定会议室
        • 会议室预定管理 取消预定会议室
        • 会议室预定管理 根据会议ID查询会议室的预定信息
    • 紧急通知应用
      • 概述
      • 发起语音电话
      • 获取接听状态
  • 效率工具
    • 日程
      • 概述
      • 回调事件
      • 管理日历
        • 日历接口 创建日历
        • 日历接口 更新日历
        • 日历接口 获取日历详情
        • 日历接口 删除日历
      • 管理日程
        • 更新重复日程
        • 新增日程参与者
        • 删除日程参与者
        • 日程接口 获取日历下的日程列表
        • 日程接口 获取日程详情
        • 日程接口 取消日程
        • 日程接口 创建日程
        • 日程接口更新日程
    • 会议
      • 回调通知
      • 概述
      • 创建预约会议
      • 修改预约会议
      • 取消预约会议
      • 获取成员会议ID列表
      • 获取会议详情
    • 直播
      • 概述
      • 直播回调事件
      • 创建预约直播
      • 修改预约直播
      • 取消预约直播
      • 删除直播回放
      • 在微信中观看直播或直播回放
      • 获取成员直播ID列表
      • 获取直播详情
      • 获取直播观看明细
      • 获取跳转小程序商城的直播观众信息
    • 微盘
      • 概述
      • 管理空间
        • 空间管理 新建空间
        • 空间管理 重命名空间
        • 空间管理 解散空间
        • 空间管理 获取空间信息
      • 管理空间权限
        • 空间权限 添加成员/部门
        • 空间权限 移除成员/部门
        • 空间权限 安全设置
        • 空间权限 获取邀请链接
        • 空间权限 获取空间信息
      • 管理文件
        • 文件管理 获取文件列表
        • 文件管理 上传文件
        • 文件分块上传 分块上传初始化
        • 文件分块上传 分块上传文件
        • 文件分块上传 分块上传完成
        • 文件管理 下载文件
        • 文件管理 新建文件/微文档
        • 文件管理 重命名文件
        • 文件管理 移动文件
        • 文件管理 删除文件
        • 文件管理 文件信息
      • 管理文件权限
        • 文件权限 新增指定人
        • 文件权限 删除指定人
        • 文件权限 分享设置
        • 文件权限 获取分享链接
        • 获取文件权限信息
        • 修改文件安全设置
      • 版本和容量管理
        • 获取盘专业版信息
        • 获取盘容量信息
      • 回调通知
        • 概述
        • 微盘容量不足事件
        • 空间变更事件
        • 文件变更事件
        • 解散空间
        • 修改空间成员
        • 修改空间安全设置
    • 公费电话
      • 获取公费电话拨打记录
    • 邮件
      • 概述
      • 回调通知
      • 发送邮件
        • 发送普通邮件
        • 发送日程邮件
        • 发送会议邮件
      • 获取接收的邮件
        • 获取收件箱邮件列表
        • 获取邮件内容
      • 管理应用邮箱账号
        • 更新应用邮箱帐号
        • 查询应用邮箱帐号
      • 管理邮件群组
        • 创建邮件群组
        • 更新邮件群组
        • 删除邮件群组
        • 获取邮件群组详情
        • 模糊搜索邮件群组
      • 管理业务邮箱
        • 创建业务邮箱
        • 更新业务邮箱
        • 删除业务邮箱
        • 获取业务邮箱详情
        • 模糊搜索业务邮箱
      • 其他邮件客户端登录设置
        • 获取用户功能属性
        • 更改用户功能属性
      • 禁用/启用邮箱帐号
      • 获取邮件未读数
    • 文档
      • 概述
      • 管理文档
        • 新建文档
        • 重命名文档/收集表
        • 删除文档/收集表
        • 获取文档基础信息
        • 分享文档
      • 设置文档权限
        • 获取文档权限信息
        • 修改文档查看规则
        • 修改文档通知范围及权限
        • 修改文档安全设置
      • 管理收集表
        • 创建收集表
        • 编辑收集表
        • 获取收集表信息
        • 读取收集表答案
        • 收集表的统计信息查询
      • 回调通知
        • 概述
        • 修改文档成员事件
        • 删除文档事件
        • 收集表完成事件
  • 企业支付
    • 概述
    • 签名算法
    • 企业红包
      • 发放企业红包
      • 查询红包记录
    • 向员工付款
      • 向员工付款
      • 查询付款记录
    • 向员工收款
      • 向员工收款
    • 对外收款
      • 概述
      • 收款商户号管理 新增商户号
      • 收款商户号管理 查询商户号详情
      • 收款商户号管理 删除商户号
      • 收款商户号管理 设置商户号使用范围
      • 获取对外收款记录
      • 获取收款项目的商户单号
  • 企业互联
    • 概述
    • 获取应用共享信息
    • 获取下级企业的access_token
    • 获取下级企业的小程序session
  • 上下游
    • 概述
    • 上下游通讯管理
      • 获取上下游信息
        • 获取上下游列表
        • 获取上下游通讯录分组
        • 获取企业上下游通讯录分组下的企业详情列表
        • 获取企业上下游通讯录下的企业信息
        • 移除企业
      • 提交批量导入上下游联系人任务
      • 获取异步任务结果
    • 基础接口
      • 获取应用共享信息
      • 获取下级/下游企业的access_token
      • 获取下级/下游企业小程序session
      • 上下游企业应用获取微信用户的external_userid
    • 上下游规则
      • 获取对接规则id列表
      • 删除对接规则
      • 获取对接规则详情
      • 新增对接规则
      • 更新对接规则
    • 回调事件
      • 上下游变更回调
      • 异步任务完成通知
  • 会话内容存档
    • 概述
    • 使用前帮助
    • 开发案例演示
    • 常见问题解答
    • 客户同意进行聊天内容存档事件回调
    • 产生会话回调事件
    • 获取会话内容
      • 说明
      • 获取会话内容 获取机器人信息
        GET
    • 获取会话内容存档开启成员列表
      POST
    • 获取会话同意情况 群聊请求
      POST
    • 获取会话同意情况 单聊请求
      POST
    • 获取会话内容存档内部群信息
      POST
  • 电子发票
    • 概述
    • 查询电子发票
    • 更新发票状态
    • 批量更新发票状态
    • 批量查询电子发票
  • 家校沟通
    • 概述
    • 基础接口
      • 获取「学校通知」二维码
      • 管理「学校通知」的关注模式-设置关注「学校通知」的模式
      • 管理「学校通知」的关注模式-获取关注「学校通知」的模式
      • 发送「学校通知」
      • 外部联系人openid转换
      • 获取可使用的家长范围
    • 网页授权登录
      • 开始开发
      • 构造网页授权链接
      • 获取访问用户身份-企业内部开发
      • 获取家校访问用户身份
    • 学生与家长管理
      • 创建学生
      • 删除学生
      • 更新学生
      • 批量创建学生
      • 批量删除学生
      • 批量更新学生
      • 创建家长
      • 删除家长
      • 更新家长
      • 批量创建家长
      • 批量删除家长
      • 批量更新家长
      • 读取学生或家长
      • 获取部门成员详情
      • 设置家校通讯录自动同步模式
      • 获取部门家长详情
    • 部门管理
      • 标准年级对照表
      • 创建部门
      • 更新部门
      • 删除部门
      • 获取部门列表
      • 修改自动升年级的配置
    • 家校通讯录变更回调
      • 成员变更事件
      • 部门变更事件
  • 家校应用
    • 健康上报
      • 获取健康上报使用统计
      • 获取健康上报任务ID列表
      • 获取健康上报任务详情
      • 获取用户填写答案
    • 复学码
      • 获取老师健康信息
      • 获取学生健康信息
      • 获取师生健康码
    • 上课直播
      • 获取老师直播ID列表
      • 获取直播详情
      • 获取观看直播统计
      • 获取未观看直播统计
      • 删除直播回放
      • 获取观看直播统计V2
      • 获取未观看直播统计V2
    • 班级收款
      • 获取学生付款结果
      • 获取订单详情
  • 政民沟通
    • 配置网格结构
      • 概述
      • 添加网格
      • 编辑网格
      • 删除网格
      • 获取网格列表
      • 获取用户负责及参与的网格列表
    • 配置事件类别
      • 添加事件类别
      • 修改事件类别
      • 删除事件类别
      • 获取事件类别列表
    • 巡查上报
      • 概述
      • 获取配置的网格及网格负责人
      • 获取单位巡查上报数据统计
      • 获取个人巡查上报数据统计
      • 获取上报事件分类统计
      • 获取巡查上报事件列表
      • 获取巡查上报的事件详情信息
    • 居民上报
      • 获取配置的网格及网格负责人
      • 获取单位居民上报数据统计
      • 获取个人居民上报数据统计
      • 获取上报事件分类统计
      • 获取居民上报事件列表
      • 获取居民上报的事件详情信息
    • 防疫场所码
      • 概述
      • 获取场所码列表
      • 获取场所码上报问卷
      • 获取场所码上报明细
  1. 获取会话内容

说明

获取会话内容#

整体流程
初始化接口
获取会话记录数据
SDK解密接口
消息格式
文本
图片
撤回消息
同意会话聊天内容
语音
视频
名片
位置
表情
文件
链接
小程序消息
会话记录消息
会话记录消息item
待办消息
投票消息
填表消息
红包消息
会议邀请消息
切换企业日志
在线文档消息
MarkDown格式消息
图文消息
日程消息
混合消息
音频存档消息
音频共享文档消息
互通红包消息
视频号消息
获取媒体文件
获取机器人信息
工具接口

整体流程#

业务方通过企业微信提供的sdk,可以进行会话记录数据的获取、媒体数据的获取。
linux环境 SDK:
下载 SDK v1.2 [更新时间:2020-11-16 更新特性:更新sdk示例项目]
下载 SDK v1.1 [更新时间:2020-04-01 更新特性:支持并发调用]
下载 SDK v1.0
windows环境 SDK:
下载 SDK v1.1[更新时间:2020-12-23 更新特性:支持并发调用、更新sdk示例项目]
下载 SDK v1.0
以下是交互时序图,本文重点介绍sdk的内容。sdk包括如下接口:
1.
初始化接口;
2.
提供分页批量拉取会话记录接口的sdk接口;
3.
对会话数据进行解密接口;
4.
对图片、文件等媒体数据,拉取媒体数据内容的sdk接口;
5.
工具函数,进行数据的析构等处理.
img

初始化接口#

第一步:
第二步:

获取会话记录数据#

通过本sdk接口来获取公司一段时间内的会话记录。一次拉取调用上限1000条会话记录,可以通过分页拉取的方式来依次拉取。调用频率不可超过600次/分钟。
 /**     * 拉取聊天记录函数     * Return值=0表示该API调用成功     *      *     * @param [in]  sdk                NewSdk返回的sdk指针     * @param [in]  seq                从指定的seq开始拉取消息,注意的是返回的消息从seq+1开始返回,seq为之前接口返回的最大seq值。首次使用请使用seq:0     * @param [in]  limit            一次拉取的消息条数,最大值1000条,超过1000条会返回错误     * @param [in]  proxy            使用代理的请求,需要传入代理的链接。如:socks5://10.0.0.1:8081 或者 http://10.0.0.1:8081     * @param [in]  passwd            代理账号密码,需要传入代理的账号密码。如 user_name:passwd_123     * @param [in]  timeout            超时时间,单位秒     * @param [out] chatDatas        返回本次拉取消息的数据,slice结构体.内容包括errcode/errmsg,以及每条消息内容。示例如下:     {"errcode":0,"errmsg":"ok","chatdata":[{"seq":196,"msgid":"CAQQ2fbb4QUY0On2rYSAgAMgip/yzgs=","publickey_ver":3,"encrypt_random_key":"ftJ+uz3n/z1DsxlkwxNgE+mL38H42/KCvN8T60gbbtPD+Rta1hKTuQPzUzO6Hzne97MgKs7FfdDxDck/v8cDT6gUVjA2tZ/M7euSD0L66opJ/IUeBtpAtvgVSD5qhlaQjvfKJc/zPMGNK2xCLFYqwmQBZXbNT7uA69Fflm512nZKW/piK2RKdYJhRyvQnA1ISxK097sp9WlEgDg250fM5tgwMjujdzr7ehK6gtVBUFldNSJS7ndtIf6aSBfaLktZgwHZ57ONewWq8GJe7WwQf1hwcDbCh7YMG8nsweEwhDfUz+u8rz9an+0lgrYMZFRHnmzjgmLwrR7B/32Qxqd79A==","encrypt_chat_msg":"898WSfGMnIeytTsea7Rc0WsOocs0bIAerF6de0v2cFwqo9uOxrW9wYe5rCjCHHH5bDrNvLxBE/xOoFfcwOTYX0HQxTJaH0ES9OHDZ61p8gcbfGdJKnq2UU4tAEgGb8H+Q9n8syRXIjaI3KuVCqGIi4QGHFmxWenPFfjF/vRuPd0EpzUNwmqfUxLBWLpGhv+dLnqiEOBW41Zdc0OO0St6E+JeIeHlRZAR+E13Isv9eS09xNbF0qQXWIyNUi+ucLr5VuZnPGXBrSfvwX8f0QebTwpy1tT2zvQiMM2MBugKH6NuMzzuvEsXeD+6+3VRqL"}]}     *     * @return 返回是否调用成功     *      0   - 成功     *      !=0 - 失败         */            int GetChatData(WeWorkFinanceSdk_t* sdk, unsigned long long seq, unsigned int limit, const char *proxy,const char* passwd,int timeout,Slice_t* chatDatas);
请求参数说明:
参数是否必须说明
sdk是初始化的sdk对象
seq是本次请求获取消息记录开始的seq值。首次访问填写0,非首次使用上次企业微信返回的最大seq。允许从任意seq重入拉取。Uint64类型,范围0-pow(2,64)-1
limit是一次调用限制的limit值,不能超过1000.uint32类型
proxy否使用代理的请求,需要传入代理的链接。如:socks5://10.0.0.1:8081 或者 http://10.0.0.1:8081.如不使用代理可以设置为空. 支持sock5跟http代理
paswd否代理账号密码,需要传入代理的账号密码。如 user_name:passwd_123
timeout是超时时长,单位 秒
chatDatas是返回本次拉取消息的数据.密文消息
注:获取会话记录内容不能超过3天,如果企业需要全量数据,则企业需要定期拉取聊天消息。返回的ChatDatas内容为json格式。
ChatDatas详解:
{"errcode":0,"errmsg":"ok","chatdata":[{"seq":196,"msgid":"CAQQ2fbb4QUY0On2rYSAgAMgip/yzgs=","publickey_ver":3,"encrypt_random_key":"ftJ+uz3n/z1DsxlkwxNgE+mL38H42/KCvN8T60gbbtPD+Rta1hKTuQPzUzO6Hzne97MgKs7FfdDxDck/v8cDT6gUVjA2tZ/M7euSD0L66opJ/IUeBtpAtvgVSD5qhlaQjvfKJc/zPMGNK2xCLFYqwmQBZXbNT7uA69Fflm512nZKW/piK2RKdYJhRyvQnA1ISxK097sp9WlEgDg250fM5tgwMjujdzr7ehK6gtVBUFldNSJS7ndtIf6aSBfaLktZgwHZ57ONewWq8GJe7WwQf1hwcDbCh7YMG8nsweEwhDfUz+u8rz9an+0lgrYMZFRHnmzjgmLwrR7B/32Qxqd79A==","encrypt_chat_msg":"898WSfGMnIeytTsea7Rc0WsOocs0bIAerF6de0v2cFwqo9uOxrW9wYe5rCjCHHH5bDrNvLxBE/xOoFfcwOTYX0HQxTJaH0ES9OHDZ61p8gcbfGdJKnq2UU4tAEgGb8H+Q9n8syRXIjaI3KuVCqGIi4QGHFmxWenPFfjF/vRuPd0EpzUNwmqfUxLBWLpGhv+dLnqiEOBW41Zdc0OO0St6E+JeIeHlRZAR+E13Isv9eS09xNbF0qQXWIyNUi+ucLr5VuZnPGXBrSfvwX8f0QebTwpy1tT2zvQiMM2MBugKH6NuMzzuvEsXeD+6+3VRqL"}]}
返回参数说明:
参数说明
errcode0表示成功,错误返回非0错误码,需要参看errmsg。Uint32类型
errmsg返回信息,如非空为错误原因。String类型
chatdata聊天记录数据内容。数组类型。包括seq、msgid等内容
seq消息的seq值,标识消息的序号。再次拉取需要带上上次回包中最大的seq。Uint64类型,范围0-pow(2,64)-1
msgid消息id,消息的唯一标识,企业可以使用此字段进行消息去重。String类型。msgid以_external结尾的消息,表明该消息是一条外部消息。
publickey_ver加密此条消息使用的公钥版本号。Uint32类型
encrypt_random_key使用publickey_ver指定版本的公钥进行非对称加密后base64加密的内容,需要业务方先base64 decode处理后,再使用指定版本的私钥进行解密,得出内容。String类型
encrypt_chat_msg消息密文。需要业务方使用将encrypt_random_key解密得到的内容,与encrypt_chat_msg,传入sdk接口DecryptData,得到消息明文。String类型
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接口,即可获得消息明文。

SDK解密接口#

请求参数说明:
参数是否必须说明
encrypt_key是企业私钥解密encrypt_random_key后的内容
encrypt_msg是GetChatdata接口返回的加密消息encrypt_chat_msg
msg是消息明文,json格式

消息格式#

本小节对content对应的消息格式进行说明。消息类型支持:文本、图片、语音、视频、位置等多种消息类型。

文本#

{"msgid":"CAQQluDa4QUY0On2rYSAgAMgzPrShAE=","action":"send","from":"XuJinSheng","tolist":["icefog"],"roomid":"","msgtime":1547087894783,"msgtype":"text","text":{"content":"test"}}
参数说明:
参数说明
msgid消息id,消息的唯一标识,企业可以使用此字段进行消息去重。String类型
action消息动作,目前有send(发送消息)/recall(撤回消息)/switch(切换企业日志)三种类型。String类型
from消息发送方id。同一企业内容为userid,非相同企业为external_userid。消息如果是机器人发出,也为external_userid。String类型
tolist消息接收方列表,可能是多个,同一个企业内容为userid,非相同企业为external_userid。数组,内容为string类型
roomid群聊消息的群id。如果是单聊则为空。String类型
msgtime消息发送时间戳,utc时间,ms单位。
msgtype文本消息为:text。String类型
content消息内容。String类型
注:
机器人与外部联系人的账号都是external_userid,其中机器人的external_userid是以”wb”开头,例如:”wbjc7bDwAAJVylUKpSA3Z5U11tDO4AAA”,外部联系人的external_userid以”wo”或”wm”开头。
如果是机器人发出的消息,可以通过openapi拉取机器人详情:如何获取机器人详情?
如果是外部联系人发出的消息,可以通过openapi拉取外部联系人详情:如何获取外部联系人详情?
如果是引用/回复消息,发消息的用户的语言设置是中文,消息内容前面会加上“这是一条引用/回复消息:”,如果发消息的用户的语言设置是英文,消息内容的前面会加上“This is a quote/reply:”。
如:
{"msgid":"CAQQluDa4QUY0On2rYSAgAMgzPrShAE=","action":"send","from":"XuJinSheng","tolist":["icefog"],"roomid":"","msgtime":1547087894783,"msgtype":"text","text":{"content":"这是一条引用/回复消息:\n"nick\n666"\n------\n@nick777"}}

图片#

{"msgid":"CAQQvPnc4QUY0On2rYSAgAMgooLa0Q8=","action":"send","from":"XuJinSheng","tolist":["icefog"],"roomid":"","msgtime":0,"msgtype":"image","image":{"md5sum":"50de8e5ae8ffe4f1df7a93841f71993a","filesize":70961,"sdkfileid":"CtYBMzA2OTAyMDEwMjA0NjIzMDYwMDIwMTAwMDIwNGI3ZmU0MDZlMDIwMzBmNTliMTAyMDQ1YzliNTQ3NzAyMDQ1YzM3M2NiYzA0MjQ2NjM0MzgzNTM0NjEzNTY1MmQzNDYxMzQzODJkMzQzMTYxNjEyZDM5NjEzOTM2MmQ2MTM2NjQ2NDY0NjUzMDY2NjE2NjM1MzcwMjAxMDAwMjAzMDExNTQwMDQxMDUwZGU4ZTVhZThmZmU0ZjFkZjdhOTM4NDFmNzE5OTNhMDIwMTAyMDIwMTAwMDQwMBI4TkRkZk1UWTRPRGcxTVRBek1ETXlORFF6TWw4eE9UUTVOamN6TkRZMlh6RTFORGN4TWpNNU1ERT0aIGEwNGQwYWUyM2JlYzQ3NzQ5MjZhNWZjMjk0ZTEyNTkz"}}
参数说明:
参数说明
msgtype图片消息为:image。String类型
sdkfileid媒体资源的id信息。String类型
md5sum图片资源的md5值,供进行校验。String类型
filesize图片资源的文件大小。Uint32类型
注:以下消息类型不再描述msgid、action、from、tolist、roomid、msgtime等通用字段,着重描述msgtype以及不同消息类型对应的json格式的消息内容。

撤回消息#

{"msgid":"15775510700152506326_1603875615","action":"recall","from":"kenshin","tolist":["wmUu0zBgAALV7ZymkcMyxvbTe8YdWxxA"],"roomid":"","msgtime":1603875615723,"msgtype":"revoke","revoke":{"pre_msgid":"14822339130656386894_1603875600"}}
参数说明
msgtype撤回消息为:revoke。String类型
pre_msgid标识撤回的原消息的msgid。String类型
示例图:
img

同意会话聊天内容#

{"msgid":"17972321270926900092_1603875944","action":"send","from":"wmErxtDgAA9AW32YyyuYRimKr7D1KWlw","tolist":["kenshin"],"roomid":"","msgtime":1603875944122,"msgtype":"disagree","disagree":{"userid":"wmErxtDgAA9AW32YyyuYRimKr7D1KWlw","disagree_time":1603875944122}}{"msgid":"8891446340739254950_1603875826","action":"send","from":"wmGAgeDQAAvQeaTqWwkMTxGMkvI7OOuQ","tolist":["kenshin"],"roomid":"","msgtime":1603875826656,"msgtype":"agree","agree":{"userid":"wmGAgeDQAAvQeaTqWwkMTxGMkvI7OOuQ","agree_time":1603875826656}}
参数说明
msgtype同意消息为:agree,不同意消息为:disagree。String类型
userid同意/不同意协议者的userid,外部企业默认为external_userid。String类型
agree_time同意/不同意协议的时间,utc时间,ms单位。
示例图:
img

语音#

{"msgid":"10958372969718811103_1603875609","action":"send","from":"wmGAgeDQAAdBjb8CK4ieMPRm7Cqm-9VA","tolist":["kenshin"],"roomid":"","msgtime":1603875609704,"msgtype":"voice","voice":{"md5sum":"9db09c7fa627c9e53f17736c786a74d5","voice_size":6810,"play_length":10,"sdkfileid":"kcyZjZqOXhETGYxajB2Zkp5Rk8zYzh4RVF3ZzZGdXlXNWRjMUoxVGZxbzFTTDJnQ2YxL0NraVcxUUJNK3VUamhEVGxtNklCbjZmMEEwSGRwN0h2cU1GQTU1MDRSMWdTSmN3b25ZMkFOeG5hMS90Y3hTQ0VXRlVxYkR0Ymt5c3JmV2VVcGt6UlNXR1ZuTFRWVGtudXVldDRjQ3hscDBrMmNhMFFXVnAwT3Y5NGVqVGpOcWNQV2wrbUJwV01TRm9xWmNDRVVrcFY5Nk9OUS9GbXIvSmZvOVVZZjYxUXBkWnMvUENkVFQxTHc2N0drb2pJT0FLZnhVekRKZ1FSNDU3ZnZtdmYvTzZDOG9DRXl2SUNIOHc9PRI0TkRkZk56ZzRNVE13TVRjMk5qQTRNak0yTmw4ek5qRTVOalExTjE4eE5qQXpPRGMxTmpBNRogNzM3MDY2NmM2YTc5Njg3NDdhNzU3NDY0NzY3NTY4NjY="}}
参数说明
msgtype语音消息为:voice。String类型
voice_size语音消息大小。Uint32类型
play_length播放长度。Uint32类型
sdkfileid媒体资源的id信息。String类型
md5sum资源的md5值,供进行校验。String类型

视频#

{"msgid":"17955920891003447432_1603875627","action":"send","from":"kenshin","tolist":["wmGAgeDQAAHuRJbt4ZQI_1cqoQcf41WQ"],"roomid":"","msgtime":1603875626823,"msgtype":"video","video":{"md5sum":"d06fc80c01d6fbffcca3b229ba41eac6","filesize":15169724,"play_length":108,"sdkfileid":"MzAzMjYxMzAzNTYzMzgzMjMyMzQwMjAxMDAwMjA0MDBlNzc4YzAwNDEwZDA2ZmM4MGMwMWQ2ZmJmZmNjYTNiMjI5YmE0MWVhYzYwMjAxMDQwMjAxMDAwNDAwEjhORGRmTVRZNE9EZzFNREEyTlRjM056QXpORjgxTWpZeE9USTBOek5mTVRZd016ZzNOVFl5Tnc9PRogNTIzNGQ1NTQ5N2RhNDM1ZDhlZTU5ODk4NDQ4NzRhNDk="}}
参数说明
msgtype视频消息为:video。String类型
sdkfileid媒体资源的id信息。String类型
md5sum资源的md5值,供进行校验。String类型
filesize资源的文件大小。Uint32类型
play_length视频播放长度。Uint32类型

名片#

{"msgid":"13714216591700685558_1603875680","action":"send","from":"kenshin","tolist":["wmGAgeDQAAy2Dtr0F8aK4dTuatfm-5Rg"],"roomid":"","msgtime":1603875680377,"msgtype":"card","card":{"corpname":"微信联系人","userid":"wmGAgeDQAAGjFmfnP7A3j2JxQDdLNhSw"}}
参数说明
msgtype名片消息为:card。String类型
corpname名片所有者所在的公司名称。String类型
userid名片所有者的id,同一公司是userid,不同公司是external_userid。String类型
示例图:
img

位置#

{"msgid":"2641513858500683770_1603876152","action":"send","from":"icefog","tolist":["wmN6etBgAA0sbJ3invMvRxPQDFoq9uWA"],"roomid":"","msgtime":1603876152141,"msgtype":"location","location":{"longitude":116.586285899,"latitude":39.911125799,"address":"北京市xxx区xxx路xxx大厦x座","title":"xxx管理中心","zoom":15}}
参数说明
msgtype位置消息为:location。String类型
longitude经度,单位double
latitude纬度,单位double
address地址信息。String类型
title位置信息的title。String类型
zoom缩放比例。Uint32类型
示例图:
img

表情#

{"msgid":"6623217619416669654_1603875612","action":"send","from":"icef","tolist":["wmErxtDgAAhteCglUZH2kUt3rq431qmg"],"roomid":"","msgtime":1603875611148,"msgtype":"emotion","emotion":{"type":1,"width":290,"height":290,"imagesize":962604,"md5sum":"94c2b0bba52cc456cb8221b248096612","sdkfileid":"4eE1ESTVNalE1TnprMFh6RTJNRE00TnpVMk1UST0aIDc0NzI2NjY1NzE3NTc0Nzg2ZDZlNzg2YTY5NjY2MTYx"}}
参数说明
msgtype表情消息为:emotion。String类型
type表情类型,png或者gif.1表示gif 2表示png。Uint32类型
width表情图片宽度。Uint32类型
height表情图片高度。Uint32类型
sdkfileid媒体资源的id信息。String类型
md5sum资源的md5值,供进行校验。String类型
imagesize资源的文件大小。Uint32类型
示例图:
img

文件#

{"msgid":"18039699423706571225_1603875608","action":"send","from":"kens","tolist":["wmErxtDgAArDlFIhf76O6w4GxU81al8w"],"roomid":"","msgtime":1603875608214,"msgtype":"file","file":{"md5sum":"18e93fc2ea884df23b3d2d3b8667b9f0","filename":"资料.docx","fileext":"docx","filesize":18181,"sdkfileid":"E4ODRkZjIzYjNkMmQzYjg2NjdiOWYwMDIwMTA1MDIwMTAwMDQwMBI4TkRkZk1UWTRPRGcxTURrek9UZzBPVEF6TTE4eE1EUXpOVGcxTlRVNVh6RTJNRE00TnpVMk1EZz0aIDMwMzkzMzY0NjEzNjM3NjY2NDY1NjMzNjYxMzIzNzYx"}}
参数说明
msgtype文件消息为:file。String类型
sdkfileid媒体资源的id信息。String类型
md5sum资源的md5值,供进行校验。String类型
filename文件名称。String类型
fileext文件类型后缀。String类型
filesize文件大小。Uint32类型

链接#

{"msgid":"11788441727514772650_1603875624","action":"send","from":"kenshin","tolist":["0000726"],"roomid":"","msgtime":1603875624476,"msgtype":"link","link":{"title":"邀请你加入群聊","description":"技术支持群,进入可查看详情","link_url":"https://work.weixin.qq.com/wework_admin/external_room/join/exceed?vcode=xxx","image_url":"https://wework.qpic.cn/wwpic/xxx/0"}}
参数说明
msgtype链接消息为:link。String类型
title消息标题。String类型
description消息描述。String类型
link_url链接url地址。String类型
image_url链接图片url。String类型

小程序消息#

{"msgid":"11930598857592605935_1603875608","action":"send","from":"kens","tolist":["wmGAgeDQAAsgQetTQGqRbMxrkodpM3fA"],"roomid":"","msgtime":1603875608691,"msgtype":"weapp","weapp":{"title":"开始聊天前请仔细阅读服务须知事项","description":"客户需同意存档聊天记录","username":"xxx@app","displayname":"服务须知"}}
参数说明
msgtype消息为:weapp。String类型
title消息标题。String类型
description消息描述。String类型
username用户名称。String类型
displayname小程序名称。String类型
示例图:
img

会话记录消息#

{"msgid":"11354299838102555191_1603875658","action":"send","from":"ken","tolist":["icef"],"roomid":"","msgtime":1603875657905,"msgtype":"chatrecord","chatrecord":{"title":"群聊","item":[{"type":"ChatRecordText","msgtime":1603875610,"content":"{\"content\":\"test\"}","from_chatroom":false},{"type":"ChatRecordText","msgtime":1603875620,"content":"{\"content\":\"test2\"}","from_chatroom":false}]}}
参数说明
msgtype消息为:chatrecord。String类型
title聊天记录标题。String类型
item消息记录内的消息内容,批量数据
示例图:
img

会话记录消息item#

"item":[{"type":"ChatRecordText","msgtime":1603875610,"content":"{\"content\":\"test\"}","from_chatroom":false},{"type":"ChatRecordText","msgtime":1603875620,"content":"{\"content\":\"test2\"}","from_chatroom":false}]
参数说明
type每条聊天记录的具体消息类型:ChatRecordText/ ChatRecordFile/ ChatRecordImage/ ChatRecordVideo/ ChatRecordLink/ ChatRecordLocation/ ChatRecordMixed ….
msgtime消息时间,utc时间,单位秒。
content消息内容。Json串,内容为对应类型的json。String类型
from_chatroom是否来自群会话。Bool类型

待办消息#

参数说明
msgtypetodo。String类型
title待办的来源文本。String类型
content待办的具体内容。String类型

投票消息#

参数说明
msgtypevote。String类型
votetitle投票主题。String类型
voteitem投票选项,可能多个内容。String数组
votetype投票类型.101发起投票、102参与投票。Uint32类型
voteid投票id,方便将参与投票消息与发起投票消息进行前后对照。String类型

填表消息#

{"msgid":"2500536226619379797_1576034482","action":"send","from":"nick","tolist":["XuJinSheng","15108264797"],"roomid":"wrjc7bDwYAOAhf9quEwRRxyyoMm0QAAA","msgtime":1576034482344,"msgtype":"collect","collect":{"room_name":"这是一个群","creator":"nick","create_time":"2019-12-11 11:21:22","title":"这是填表title","details":[{"id":1,"ques":"表项1,文本","type":"Text"},{"id":2,"ques":"表项2,数字","type":"Number"},{"id":3,"ques":"表项3,日期","type":"Date"},{"id":4,"ques":"表项4,时间","type":"Time"}]}}
参数说明
msgtypecollect。String类型
room_name填表消息所在的群名称。String类型
creator创建者在群中的名字。String类型
create_time创建的时间。String类型
title表名。String类型
details表内容。json数组类型
id表项id。Uint64类型
ques表项名称。String类型
type表项类型,有Text(文本),Number(数字),Date(日期),Time(时间)。String类型

红包消息#

{"msgid":"333590477316965370_1603877439","action":"send","from":"kens","tolist":["1000000444696"],"roomid":"","msgtime":1603877439038,"msgtype":"redpacket","redpacket":{"type":1,"wish":"恭喜发财,大吉大利","totalcnt":1,"totalamount":3000}}
参数说明
msgtyperedpacket。String类型
type红包消息类型。1 普通红包、2 拼手气群红包、3 激励群红包。Uint32类型
wish红包祝福语。String类型
totalcnt红包总个数。Uint32类型
totalamount红包总金额。Uint32类型,单位为分。

会议邀请消息#

{"msgid":"5935786683775673543_1603877328","action":"send","from":"ken","tolist":["icef","test"],"roomid":"wr2vOpDgAAN4zVWKbS","msgtime":1603877328914,"msgtype":"meeting","meeting":{"topic":"夕会","starttime":1603877400,"endtime":1603881000,"address":"","remarks":"","meetingtype":102,"meetingid":1210342560,"status":1}}
参数说明
msgtypemeeting。String类型
topic会议主题。String类型
starttime会议开始时间。Utc时间
endtime会议结束时间。Utc时间
address会议地址。String类型
remarks会议备注。String类型
meetingtype会议消息类型。101发起会议邀请消息、102处理会议邀请消息。Uint32类型
meetingid会议id。方便将发起、处理消息进行对照。uint64类型
status会议邀请处理状态。1 参加会议、2 拒绝会议、3 待定、4 未被邀请、5 会议已取消、6 会议已过期、7 不在房间内。Uint32类型。只有meetingtype为102的时候此字段才有内容。

切换企业日志#

{"msgid":"125289002219525886280","action":"switch","time":1554119421840,"user":"XuJinSheng"}
参数说明:
参数说明
msgid消息id,消息的唯一标识,企业可以使用此字段进行消息去重。String类型
action消息动作,切换企业为switch。String类型
time消息发送时间戳,utc时间,ms单位。
user具体为切换企业的成员的userid。String类型
注:切换企业日志不是真正的消息,与上述消息结构不完全相同。

在线文档消息#

{"msgid":"9732089160923053207_1603877765","action":"send","from":"ken","tolist":["icef","test"],"roomid":"wrJawBCQAAStr3jxVxEH","msgtime":1603877765291,"msgtype":"docmsg","doc":{"title":"测试&演示客户","doc_creator":"test","link_url":"https://doc.weixin.qq.com/txdoc/excel?docid=xxx"}}
参数说明
msgtypedocmsg。String类型, 标识在线文档消息类型
title在线文档名称
link_url在线文档链接
doc_creator在线文档创建者。本企业成员创建为userid;外部企业成员创建为external_userid
示例图:
img

MarkDown格式消息#

{"msgid":"7546287934688259248_1603875715","action":"send","from":"ken","tolist":["icef","test"],"roomid":"wr0SfLCgAAgCaCPeM33UNe","msgtime":1603875715782,"msgtype":"markdown","info":{"content":"请前往系统查看,谢谢。"}}
参数说明
msgtypemarkdown。String类型, 标识MarkDown消息类型
infomarkdown消息内容,目前为机器人发出的消息

图文消息#

{"msgid":"118732825779547782215","action":"send","from":"kens","tolist":["icef","test"],"roomid":"wrErxtDgAA0jgXE5","msgtime":1603876045165,"msgtype":"news","info":{"item":[{"title":"service ","description":"test","url":"http://xxx","picurl":"https://www.qq.com/xxx.jpg"}]}}
参数说明
msgtypenews。String类型, 标识图文消息类型
info图文消息的内容
item图文消息数组,每个item结构包含title、description、url、picurl等结构
title图文消息标题。String类型
description图文消息描述。String类型
url图文消息点击跳转地址。String类型
picurl图文消息配图的url。String类型

日程消息#

{"msgid":"2345881211604379705_1603877680","action":"send","from":"ken","tolist":["icef","test"],"roomid":"wr2LO0CAAAFrTZCGWWAxBA","msgtime":1603877680795,"msgtype":"calendar","calendar":{"title":"xxx业绩复盘会","creatorname":"test","attendeename":["aaa","bbb"],"starttime":1603882800,"endtime":1603886400,"place":"","remarks":""}}
参数说明
msgtypecalendar。String类型, 标识日程消息类型
title日程主题。String类型
creatorname日程组织者。String类型
attendeename日程参与人。数组,内容为String类型
starttime日程开始时间。Utc时间,单位秒
endtime日程结束时间。Utc时间,单位秒
place日程地点。String类型
remarks日程备注。String类型
示例图:
img

混合消息#

{"msgid":"DAQQluDa4QUY0On4kYSABAMgzPrShAE=","action":"send","from":"HeMiao","tolist":["HeChangTian","LiuZeYu"],"roomid":"wr_tZ2BwAAUwHpYMwy9cIWqnlU3Hzqfg","msgtime":1577414359072,"msgtype":"mixed","mixed":{"item":[{"type":"text","content":"{\"content\":\"你好[微笑]\\n\"}"},{"type":"image","content":"{\"md5sum\":\"368b6c18c82e6441bfd89b343e9d2429\",\"filesize\":13177,\"sdkfileid\":\"CtYBMzA2OTAyMDEwMjA0NjIzMDYwMDIwMTAwMDWwNDVmYWY4Y2Q3MDIwMzBmNTliMTAyMDQwYzljNTQ3NzAyMDQ1ZTA1NmFlMjA0MjQ2NjM0NjIzNjY2MzYzNTMyMmQzNzYxMzQ2NDJkMzQ2MjYxNjQyZDM4MzMzMzM4MmQ3MTYyMzczMTM4NjM2NDYxMzczMjY2MzkwMjAxMDAwMjAzMDIwMDEwMDQxMDM2OGI2YzE4YzgyZTY0NDFiZmQ4OWIyNDNlOWQyNDI4MDIwMTAyMDIwMTAwMDQwMBI4TkRkZk2UWTRPRGcxTVRneE5URTFNRGc1TVY4eE1UTTFOak0yTURVeFh6RTFOemMwTVRNek5EYz0aIDQzMTY5NDFlM2MxZDRmZjhhMjEwY2M0NDQzZGUXOTEy\"}"}]}}
参数说明
msgid消息id,消息的唯一标识,企业可以使用此字段进行消息去重。String类型
action消息动作,目前有send(发送消息)/recall(撤回消息)/switch(切换企业日志)三种类型。String类型
from消息发送方id。同一企业内容为userid,非相同企业为external_userid。消息如果是机器人发出,也为external_userid。String类型
tolist消息接收方列表,可能是多个,同一个企业内容为userid,非相同企业为external_userid。数组,内容为string类型
roomid群聊消息的群id。如果是单聊则为空。String类型
msgtime消息发送时间戳,utc时间,ms单位。
msgtypemixed。String类型, 标识混合消息类型
mixed消息内容。可包含图片、文字、表情等多种消息。Object类型
注:mixed内包含一个item数组,其中每个元素由type与content组成,type和content均为String类型。JSON解析content后即可获取对应type类型的消息内容。
示例图:
混合消息示例图

音频存档消息#

{"msgid":"17952229780246929345_1594197637","action":"send","from":"wo137MCgAAYW6pIiKKrDe5SlzEhSgwbA","tolist":["wo137MCgAAYW6pIiKKrDe5SlzEhSgwbA"],"msgtime":1594197581203,"msgtype":"meeting_voice_call","voiceid":"grb8a4c48a3c094a70982c518d55e40557","meeting_voice_call":{"endtime":1594197635,"sdkfileid":"CpsBKjAqd0xhb2JWRUJldGtwcE5DVTB6UjRUalN6c09vTjVyRnF4YVJ5M24rZC9YcHF3cHRPVzRwUUlaMy9iTytFcnc0SlBkZDU1YjRNb0MzbTZtRnViOXV5WjUwZUIwKzhjbU9uRUlxZ3pyK2VXSVhUWVN2ejAyWFJaTldGSkRJVFl0aUhkcVdjbDJ1L2RPbjJsRlBOamJaVDNnPT0SOE5EZGZNVFk0T0RnMU16YzVNVGt5T1RJMk9GOHhNalk0TXpBeE9EZzJYekUxT1RReE9UYzJNemM9GiA3YTYyNzA3NTY4Nzc2MTY3NzQ2MTY0NzA2ZTc4NjQ2OQ==","demofiledata":[{"filename":"65eb1cdd3e7a3c1740ecd74220b6c627.docx","demooperator":"wo137MCgAAYW6pIiKKrDe5SlzEhSgwbA","starttime":1594197599,"endtime":1594197609}],"sharescreendata":[{"share":"wo137MCgAAYW6pIiKKrDe5SlzEhSgwbA","starttime":1594197624,"endtime":1594197624}]}}
参数说明
msgid消息id,消息的唯一标识,企业可以使用此字段进行消息去重。String类型
action消息动作,目前有send(发送消息)/recall(撤回消息)/switch(切换企业日志)三种类型。String类型
from消息发送方id。同一企业内容为userid,非相同企业为external_userid。消息如果是机器人发出,也为external_userid。String类型
tolist消息接收方列表,可能是多个,同一个企业内容为userid,非相同企业为external_userid。数组,内容为string类型
msgtime消息发送时间戳,utc时间,单位毫秒。
msgtypemeeting_voice_call。String类型, 标识音频存档消息类型
voiceidString类型, 音频id
meeting_voice_call音频消息内容。包括结束时间、fileid,可能包括多个demofiledata、sharescreendata消息,demofiledata表示文档共享信息,sharescreendata表示屏幕共享信息。Object类型
endtime音频结束时间。uint32类型
sdkfileidsdkfileid。音频媒体下载的id。String类型
demofiledata文档分享对象,Object类型
filename文档共享名称。String类型
demooperator文档共享操作用户的id。String类型
starttime文档共享开始时间。Uint32类型
endtime文档共享结束时间。Uint32类型
sharescreendata屏幕共享对象,Object类型
share屏幕共享用户的id。String类型
starttime屏幕共享开始时间。Uint32类型
endtime屏幕共享结束时间。Uint32类型
注:如果音频过程中包括文档演示或屏幕共享,meeting_voice_call内会包含demofiledata数组跟sharescreendata数组,对应音频过程中的多次文档演示跟屏幕共享。

音频共享文档消息#

{"msgid":"16527954622422422847_1594199256","action":"send","from":"18002520162","tolist":["wo137MCgAAYW6pIiKKrDe5SlzEhSgwbA"],"msgtime":1594199235014,"msgtype":"voip_doc_share","voipid":"gr2751c98b19300571f8afb3b74514bd32","voip_doc_share":{"filename":"欢迎使用微盘.pdf.pdf","md5sum":"ff893900f24e55e216e617a40e5c4648","filesize":4400654,"sdkfileid":"CpsBKjAqZUlLdWJMd2gvQ1JxMzd0ZjlpdW5mZzJOOE9JZm5kbndvRmRqdnBETjY0QlcvdGtHSFFTYm95dHM2VlllQXhkUUN5KzRmSy9KT3pudnA2aHhYZFlPemc2aVZ6YktzaVh3YkFPZHlqNnl2L2MvcGlqcVRjRTlhZEZsOGlGdHJpQ2RWSVNVUngrVFpuUmo3TGlPQ1BJemlRPT0SOE5EZGZNVFk0T0RnMU16YzVNVGt5T1RJMk9GODFNelUyTlRBd01qQmZNVFU1TkRFNU9USTFOZz09GiA3YTcwNmQ2Zjc5NjY3MDZjNjY2Zjc4NzI3NTZmN2E2YQ=="}}
参数说明
msgid消息id,消息的唯一标识,企业可以使用此字段进行消息去重。String类型
action消息动作,目前有send(发送消息)/recall(撤回消息)/switch(切换企业日志)三种类型。String类型
from消息发送方id。同一企业内容为userid,非相同企业为external_userid。消息如果是机器人发出,也为external_userid。String类型
tolist消息接收方列表,可能是多个,同一个企业内容为userid,非相同企业为external_userid。数组,内容为string类型
msgtime消息发送时间戳,utc时间,单位毫秒。
msgtypevoip_doc_share。String类型, 标识音频共享文档类型
voipidString类型, 音频id
voip_doc_share共享文档消息内容。包括filename、md5sum、filesize、sdkfileid字段。Object类型
filename文档共享文件名称。String类型
md5sum共享文件的md5值。String类型
filesize共享文件的大小。Uint64类型
sdkfileid共享文件的sdkfile,通过此字段进行媒体数据下载。String类型

互通红包消息#

{"msgid":"8632214264349267353_1603786184","action":"send","from":"woJ7ijBwAAmqwojT8r_DaNMbr_NAvaag","tolist":["woJ7ijBwAA6SjS_sIyPLZtyEPJlT7Cfw","tiny-six768"],"roomid":"wrJ7ijBwAAG1vly_DzVI72Ghc-PtA5Dw","msgtime":1603786183955,"msgtype":"external_redpacket","redpacket":{"type":1,"wish":"恭喜发财,大吉大利","totalcnt":2,"totalamount":20}}
参数说明
msgtypeexternal_redpacket。String类型。出现在本企业与外部企业群聊发送的红包、或者本企业与微信单聊、群聊发送的红包消息场景下。
type红包消息类型。1 普通红包、2 拼手气群红包。Uint32类型
wish红包祝福语。String类型
totalcnt红包总个数。Uint32类型
totalamount红包总金额。Uint32类型,单位为分。

视频号消息#

{"msgid":"5702551662099334532_1619511584_external","action":"send","from":"yangzhu1","tolist":["wmJSb5CgAA4aWXWndJspQGpJMDbsMwMA"],"roomid":"","msgtime":1619511584444,"msgtype":"sphfeed","sphfeed":{"feed_type":4,"sph_name":"云游天地旅行家","feed_desc":"瑞士丨盖尔默缆车,名副其实的过山车~\n\n#旅行#风景#热门"}}
参数说明
msgtypesphfeed。String类型, 标识视频号消息类型。
feed_type视频号消息类型。2 图片、4 视频、9 直播。Uint32类型
sph_name视频号账号名称。String类型
feed_desc视频号消息描述。String类型
消息容量评估:以平均群大小评估,每条消息平均大小约1k;最大群消息评估,每条消息约50k

获取媒体文件#

针对图片、文件等媒体数据,提供sdk接口拉取数据内容。
请求参数说明:
参数是否必须说明
sdk是初始化的sdk对象
indexbuf是媒体消息分片拉取,需要填入每次拉取的索引信息。首次不需要填写,后续每次调用只需要将上次调用返回的outindexbuf填入即可。
sdkfileid是消息体内容中的sdkfileid信息。
proxy否使用代理的请求,需要传入代理的链接。如:socks5://10.0.0.1:8081 或者 http://10.0.0.1:8081
passwd否代理账号密码,需要传入代理的账号密码。如 user_name:passwd_123
timeout是超时时间,单位秒
返回参数说明:
参数是否必须说明
media_data是返回本次拉取的媒体数据.MediaData结构体.内容包括data(数据内容)/outindexbuf(下次索引)/is_finish(拉取完成标记)

获取机器人信息#

通过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是调用接口凭证
robot_id是机器人ID。
权限说明:
只能通过会话存档的access_token获取。
返回结果:
{    "errcode": 0,    "errmsg": "ok",    "data": {        "robot_id": "wbxxxxxxxxxxxxxxxxxxxxxxxx",        "name": "机器人A",        "creator_userid": "zhangsan"    }
参数说明:
参数说明
errcode返回码
errmsg对返回码的文本描述内容
robot_id机器人ID
name机器人名称
creator_userid机器人创建者的UserID

工具接口#

    /*     * @brief 释放sdk,和NewSdk成对使用     * @return     */    void DestroySdk(WeWorkFinanceSdk_t* sdk);    Slice_t* NewSlice();    /*     * @brief 释放slice,和NewSlice成对使用     * @return      */    void FreeSlice(Slice_t* slice);    /*     * @brief 为其他语言提供读取接口     * @return 返回buf指针     *     !=NULL - 成功     *     NULL   - 失败     */    char* GetContentFromSlice(Slice_t* slice);    // 媒体记录相关工具    MediaData_t*  NewMediaData();    void FreeMediaData(MediaData_t* media_data);    char* GetOutIndexBuf(MediaData_t* media_data);    char* GetData(MediaData_t* media_data);    int IsMediaDataFinish(MediaData_t* media_data);

【企业微信】API开发者 微信交流群

用微信扫右侧二维码,加入【企业微信】API开发者 交流群,互助沟通

扫码加入交流群
上一页
产生会话回调事件
下一页
获取会话内容 获取机器人信息
Built with