Categorygithub.com/xen0n/go-workwx
modulepackage
1.7.0
Repository: https://github.com/xen0n/go-workwx.git
Documentation: pkg.go.dev

# README

go-workwx

GitHub go.mod Go version GitHub tag (latest by date) GitHub Workflow Status (develop branch) GitHub license info Go Report Card Go Reference GitHub Repo stars

本项目需要您的帮助!

import (
    "github.com/xen0n/go-workwx" // package workwx
)

A Work Weixin (a.k.a. Wechat Work) client SDK for Golang, that happens to be battle-tested and pretty serious about its types.

In production since late 2018, pushing all kinds of notifications and alerts in at least 2 of Qiniu's internal systems.

一个 Golang 企业微信客户端 SDK;碰巧在生产环境试炼过,还对类型很严肃。

自 2018 年末以来,在七牛至少 2 个内部系统运转至今,推送各种通知、告警。

English translation TODO for now, as the service covered here is not available outside of China (AFAIK).

Why another wheel?

工作中需要用 Go 实现一个简单的消息推送,想着找个开源库算了,然而现有唯一的开源企业微信 Golang SDK 代码质量不佳。只好自己写一个。

Update: 自从这个库写出来,已经过了很久;现在(2019.08)已经有三四个同类项目了。 不过看了看这些“竞品”,发现自己这个库的类型设计、公开接口、access token 处理等方面还不赖。 为什么人们总是喜欢写死请求 Host、用全局量、为拆包而拆包甚至不惜公开内部方法呢?

Supported Go versions

本库的 v1.x 分支最低支持到 go1.17

CI 会在 go1.17 和 Go 的当前稳定版本、上一个稳定版本上跑测试,只有测试全部通过才可能合并 PR。

Features

  • 包名短
  • 支持覆盖 API Host,用于自己拦一层网关、临时调试等等奇葩需求
  • 支持使用自定义 http.Client
  • access token 处理靠谱
    • 你可以直接就做 API 调用,会自动请求 access token
    • 你也可以一行代码起一个后台 access token 刷新 goroutine
    • 自带指数退避重试
  • 严肃对待类型、公开接口
    • 公开暴露接口最小化,两步构造出 WorkwxApp 对象,然后直接用
    • 刻意不暴露企业微信原始接口请求、响应类型
    • 后续可能会做一个 lowlevel 包暴露裸的 API 接口,但很可能不做
    • 不为多态而多态,宁可 SDK 内部重复代码,也保证一个接口一类动作,下游用户 static dispatch
    • 个别数据模型做了调整甚至重做(如 UserInfoRecipient),以鼓励 idiomatic Go 风格
    • 几乎不会越俎代庖,一言不合 panic现存的少数一些情况都是要修掉的。
  • 自带一个 workwxctl 命令行小工具帮助调试
    • 用起来不爽提 issue 让我知道你在想啥

详情看 godoc 文档,还提供 Examples 小段代码可以参考。

Supported APIs

  • 通讯录管理 (部分支持,见下)
  • 客户联系 (大部分支持,见下)
  • 微信客服 (部分支持,见下)
  • 应用管理
  • 消息发送 (全部支持)
  • 消息接收
  • 素材管理 (支持上传, 见下)
  • OA (大部分支持,见下)
  • 会话内容存档 (大部分支持,见下)
  • 企业微信登录接口 (code2Session)
  • 获取访问用户身份 (code2UserInfo)
通讯录管理 API
  • 成员管理
    • 创建成员
    • 读取成员 NOTE: 成员对外信息暂未实现
    • 更新成员
    • 删除成员
    • 批量删除成员
    • 获取部门成员
    • 获取部门成员详情
    • userid与openid互换
    • 二次验证
    • 邀请成员
    • 获取加入企业二维码
    • 手机号获取userid
    • 邮箱获取userid
    • 获取成员ID列表
  • 部门管理
    • 创建部门
    • 更新部门
    • 删除部门
    • 获取部门列表
    • 获取子部门ID列表
  • 标签管理
    • 创建标签
    • 更新标签名字
    • 删除标签
    • 获取标签成员
    • 增加标签成员
    • 删除标签成员
    • 获取标签列表
  • 异步批量接口
    • 增量更新成员
    • 全量覆盖成员
    • 全量覆盖部门
    • 获取异步任务结果
  • 通讯录回调通知
    • 成员变更通知
    • 部门变更通知
    • 标签变更通知
    • 异步任务完成通知
客户联系 API
  • 成员对外信息
  • 企业服务人员管理
    • 获取配置了客户联系功能的成员列表
    • 客户联系「联系我」管理
    • 客户群「加入群聊」管理
  • 客户管理
    • 获取客户列表
    • 获取客户详情
    • 批量获取客户详情
    • 修改客户备注信息
  • 客户群管理
    • 获取客户群列表
    • 获取客户群详情
    • 客户群opengid转换
  • 在职继承
    • 分配在职成员的客户
    • 查询客户接替状态
    • 分配在职成员的客户群
  • 离职继承
    • 获取待分配的离职成员列表
    • 分配离职成员的客户
    • 查询客户接替状态
    • 分配离职成员的客户群
  • 客户标签管理
    • 管理企业标签
    • 编辑客户企业标签
  • 客户分配
    • 获取离职成员列表
    • 分配在职或离职成员的客户
    • 查询客户接替结果
    • 分配离职成员的客户群
  • 变更回调通知
    • 添加企业客户事件
    • 编辑企业客户事件
    • 外部联系人免验证添加成员事件
    • 删除企业客户事件
    • 删除跟进成员事件
    • 客户接替失败事件
    • 客户群变更事件
  • 消息推送
    • 创建企业群发
    • 获取企业的全部群发记录
    • 发送新客户欢迎语
    • 入群欢迎语素材管理
微信客服 API
  • 客服账号管理
    • 添加客服账号
    • 删除客服账号
    • 修改客服账号
    • 获取客服账号列表
    • 获取客服账号链接
  • 接待人员管理
    • 添加接待人员
    • 删除接待人员
    • 获取接待人员列表
  • 会话分配与消息收发
    • 分配客服会话
    • 接收消息和事件
    • 发送消息
    • 发送欢迎语等事件响应消息
  • 「升级服务」配置
  • 其他基础信息获取
    • 获取客户基础信息
  • 统计管理
    • 获取「客户数据统计」企业汇总数据
    • 获取「客户数据统计」接待人员明细数据
  • 机器人管理
    • 知识库分组管理
    • 知识库问答管理
身份验证 API
  • 获取访问用户身份
应用管理 API
  • 获取应用
  • 设置应用
  • 自定义菜单
    • 创建菜单
    • 获取菜单
    • 删除菜单
消息发送 API
  • 发送应用消息
  • 接收消息
  • 发送消息到群聊会话
    • 创建群聊会话
    • 修改群聊会话
    • 获取群聊会话
    • 应用推送消息

消息类型

  • 文本消息
  • 图片消息
  • 语音消息
  • 视频消息
  • 文件消息
  • 文本卡片消息
  • 图文消息
  • 图文消息(mpnews)
  • markdown消息
  • 任务卡片消息
素材管理 API
  • 上传临时素材
  • 上传永久图片
  • 获取临时素材
  • 获取高清语音素材
OA API
  • 审批
    • 获取审批模板详情
    • 提交审批申请
    • 审批申请状态变化回调通知
    • 批量获取审批单号
    • 获取审批申请详情
    • 获取企业假期管理配置
    • 修改成员假期余额
会话内容存档 API
  • 获取会话内容存档开启成员列表
  • 获取会话同意情况
  • 客户同意进行聊天内容存档事件回调
  • 获取会话内容存档内部群信息

Notes

关于保密消息发送

Markdown 等类型消息目前不支持作为保密消息发送,强行发送会报错。 那么为何发送消息的方法还全部带着 isSafe 参数呢?

一方面,企业微信服务方完全可能在未来支持更多消息类型的保密发送,到时候不希望客户端代码重新编译; 另一方面,反正响应会报错,你也不会留着这种逻辑。因此不改了。

License

Stargazers over time

Stargazers over time

# Packages

# Functions

New 构造一个 Workwx 客户端对象,需要提供企业 ID.
NewMediaFromBuffer 从内存创建一个欲上传的素材对象.
NewMediaFromFile 从操作系统级文件创建一个欲上传的素材对象.
NewWebhookClient 构造一个群机器人客户端对象,需要提供 webhook 的 key。.
WithHTTPClient 使用给定的 http.Client 作为 HTTP 客户端.
WithQYAPIHost 覆盖默认企业微信 API 域名.

# Constants

AttachmentMsgTypeImage 图片消息.
AttachmentMsgTypeLink 图文消息.
AttachmentMsgTypeMiniprogram 小程序消息.
AttachmentMsgTypeVideo 视频消息.
按钮交互型.
多项选择型.
图文展示型.
文本通知型.
投票选择型.
ChangeTypeAddExternalContact 添加企业客户事件.
ChangeTypeAddHalfExternalContact 外部联系人免验证添加成员事件.
ChangeTypeCreateUser 新增成员事件.
ChangeTypeDelExternalContact 删除企业客户事件.
ChangeTypeDelFollowUser 删除跟进成员事件.
ChangeTypeEditExternalContact 编辑企业客户事件.
ChangeTypeTransferFail 客户接替失败事件.
ChangeTypeUpdateUser 更新成员事件.
ChatNeedName 是否需要返回群成员的名字 0-不返回;1-返回。默认不返回.
ChatTypeGroup 发送给客户群.
ChatTypeSingle 发送给客户.
DefaultQYAPIHost 默认企业微信 API Host.
EmailTypeCorporate 企业邮箱.
EmailTypePersonal 个人邮箱.
EventTypeAppMenuClick 点击菜单.
EventTypeAppMenuLocationSelect 弹出微信位置选择器.
EventTypeAppMenuPicPhotoOrAlbum 弹出系统拍照发图.
EventTypeAppMenuPicSysPhoto 弹出系统拍照发图.
EventTypeAppMenuPicWeixin 弹出微信相册发图器.
EventTypeAppMenuScanCodePush 扫码上传.
EventTypeAppMenuScanCodeWaitMsg 扫码等待消息.
EventTypeAppMenuCView 打开菜单链接.
EventTypeAppSubscribe 应用订阅.
EventTypeAppUnsubscribe 应用订阅取消.
EventTypeChangeContact 通讯录回调通知.
EventTypeChangeExternalChat 客户群变更事件.
EventTypeChangeExternalContact 企业客户事件.
EventTypeKfMsgOrEvent 客服回调通知.
EventTypeSysApprovalChange 审批申请状态变化回调通知.
ExternalContactTransferStatusExhausted 4-接替成员客户达到上限.
ExternalContactTransferStatusNoData 5-无接替记录.
ExternalContactTransferStatusRefused 3-客户拒绝.
ExternalContactTransferStatusSuccess 1-接替完毕.
ExternalContactTransferStatusWait 2-等待接替.
ExternalUserTypeWeChat 微信用户.
ExternalUserTypeWorkWeChat 企业微信用户.
手机通讯录.
管理员/负责人分配.
名片分享.
搜索邮箱.
群聊.
内部成员共享.
搜索手机号.
扫描二维码.
安装第三方应用时自动添加的客服人员.
未知来源.
微信联系人.
来自微信的添加好友申请.
用户自定义.
企业设置.
KfEventTypeEnterSession 用户进入会话事件.
KfEventTypeMsgSendFail 消息发送失败事件.
KfEventTypeRejectCustomerMsgSwitchChange 拒收客户消息变更事件.
KfEventTypeServicerRecallMsg 接待人员撤回消息事件.
KfEventTypeServicerStatusChange 接待人员接待状态变更事件.
KfEventTypeSessionStatusChange 会话状态变更事件.
KfEventTypeUserRecallMsg 用户撤回消息事件.
KfServiceStateFinished 已结束/未开始.
KfServiceStateInQueue 待接入池排队中.
KfServiceStateManualReception 由人工接待.
KfServiceStateRobotReception 由智能助手接待.
KfServiceStateUntreated 未处理 新会话接入.
MentionAll 表示提醒所有人(“@所有人”)的特殊标记.
MessageTypeEvent 事件消息.
MessageTypeImage 图片消息.
MessageTypeLink 链接消息.
MessageTypeLocation 位置消息.
MessageTypeText 文本消息.
MessageTypeVideo 视频消息.
MessageTypeVoice 语音消息.
MsgAuditAgreeStatusAgree 同意.
MsgAuditAgreeStatusDefaultAgree 默认同意.
MsgAuditAgreeStatusDisagree 不同意.
MsgAuditEditionEnterprise 会话内容存档企业版.
MsgAuditEditionOffice 会话内容存档办公版.
MsgAuditEditionService 会话内容存档服务版.
OAApprovalInfoFilterKeyCreator 申请人.
OAApprovalInfoFilterKeyDepartment 审批单提单者所在部门.
OAApprovalInfoFilterKeySpStatus 审批状态.
OAApprovalInfoFilterKeyTemplateID 模板类型.
OAControlAttendance 假勤组件-出差/外出/加班组件.
OAControlContact 成员/部门控件.
OAControlDate 日期/日期+时间控件.
OAControlDateRange 时长控件.
OAControlFile 附件控件.
OAControlFormula 公式控件.
OAControlLocation 位置控件.
OAControlMoney 金额.
OAControlNumber 数字.
OAControlRelatedApproval 关联审批单控件.
OAControlSelector 单选/多选控件.
OAControlTable 明细控件.
OAControlText 文本.
OAControlTextarea 多行文本.
OAControlTips 说明文字控件.
OAControlVacation 假勤组件-请假组件.
SizeTypeLarge 2052 x 2052.
SizeTypeMedium 741 x 741.
SizeTypeMini 171 x 171.
SizeTypeSmall 399 x 399.
UserGenderFemale 女性.
UserGenderMale 男性.
UserGenderUnspecified 性别未定义.
UserStatusActivated 已激活.
UserStatusDeactivated 已禁用.
UserStatusUnactivated 未激活.

# Structs

ActionList 操作列表,列表长度取值范围为 [1, 3].
ActionMenu 卡片右上角更多操作按钮.
AddMsgTemplateExternalContact 创建企业群发请求参数.
Article
Article news 类型的文章.
Attachments 附件.
AuthCodeUserInfo 访问用户身份.
BatchListExternalContactsResp 外部联系人信息.
ButtonSelection 按钮交互型.
CardAction 整体卡片的点击跳转事件,text_notice必填本字段.
CardImage 图片样式,news_notice类型的卡片,card_image和image_text_area两者必填一个字段,不可都不填.
ChatAdminList 客户群管理员列表.
ChatInfo 群聊信息.
ChatMemberList 客户群成员列表.
ChatMemberListInvitor 入群邀请者.
CheckBox 选择题样式.
CheckMsgAuditRoomAgreeInfo 获取会话同意情况(群聊)同意信息.
CheckMsgAuditSingleAgreeInfo 获取会话同意情况(单聊)同意信息.
CheckMsgAuditSingleAgreeUserInfo 获取会话同意情况(单聊)内外成员.
Conclusions 结束语,会话结束时自动发送给客户.
CorpVacationConf 企业假期管理配置.
CorpVacationConfDate 企业假期管理配置-失效日期.
CorpVacationConfExpireRule 企业假期管理配置-假期过期规则.
CorpVacationConfQuotaAttr 企业假期管理配置-假期发放相关配置.
CorpVacationConfQuotaRule 企业假期管理配置-额度计算规则区间.
CorpVacationConfQuotaRules 企业假期管理配置-额度计算规则.
DeptInfo 部门信息.
EmphasisContent 关键数据样式.
ExternalAttr 属性列表,目前支持文本、网页、小程序三种类型.
ExternalAttrMiniprogram 小程序类型的属性,appid和title字段要么同时为空表示清除改属性,要么同时不为空 ,type为2时必填.
ExternalAttrText 文本类型的属性.
ExternalAttrWeb 网页类型的属性,url和title字段要么同时为空表示清除该属性,要么同时不为空 ,type为1时必填.
ExternalContact 外部联系人.
ExternalContactAddCorpTag 企业客户标签.
ExternalContactAddCorpTagGroup 企业客户标签组.
ExternalContactBatchInfo 外部联系人信息.
ExternalContactCorpTag 企业客户标签.
ExternalContactCorpTagGroup 企业客户标签.
ExternalContactFollowUserList 配置了客户联系功能的成员列表.
ExternalContactGroupChatTransferFailed 离职成员的群再分配失败.
ExternalContactInfo 外部联系人信息.
ExternalContactMarkTag 企业标记客户标签.
ExternalContactRemark 客户备注信息.
ExternalContactTransferResult 客户接替结果.
ExternalContactUnassigned 离职成员的客户.
ExternalContactUnassignedList 离职成员的客户列表.
ExternalContactWay 配置客户联系「联系我」方式.
ExternalGroupChatJoinWay 配置客户群「加入群聊」方式.
ExternalProfile 成员对外信息.
File 文件消息.
FollowInfo 企业成员客户跟进信息,可以参考获取客户详情,但标签信息只会返回企业标签的tag_id,个人标签将不再返回.
FollowUser 添加了外部联系人的企业成员.
FollowUserInfo 添加了外部联系人的企业成员.
FollowUserTag 该成员添加此外部联系人所打标签.
GetOAApprovalInfoReq 批量获取审批单号请求.
GroupChatList 客户群列表数据.
HorizontalContentList 二级标题+文本列表,该字段可为空数组,但有数据的话需确认对应字段是否必填,列表长度不超过6.
Image 图片类型消息.
ImageTextArea 左图右文样式,news_notice类型的卡片,card_image和image_text_area两者必填一个字段,不可都不填.
JSCodeSession 临时登录凭证.
JumpList 跳转指引样式的列表,该字段可为空数组,但有数据的话需确认对应字段是否必填,列表长度不超过3.
KfAccount 客服账号.
KfEvent 客服会话事件.
KfMsg 客服消息数据.
KfServicer 客服接待人员.
KfServicerResult 接待人员数据.
KfWechatChannels 进入会话的视频号信息,从视频号进入会话才有值.
Link 图文消息.
MainTitle 一级标题.
Media 欲上传的素材 NOTE: 由于 Go `mime/multipart` 包的实现细节原因, 暂时不开放 Content-Type 定制,全部传 `application/octet-stream`。 如有需求,请去 GitHub 提 issue。.
MediaUploadResult 临时素材上传结果.
Mentions 群机器人消息的提醒设置.
MiniProgram 小程序消息.
MPArticle mpnews 类型的文章.
MsgAuditGroupChat 获取会话内容存档内部群信息.
MsgAuditGroupChatMember 获取会话内容存档内部群成员.
OAApplyEvent 提交审批申请.
OAApprovalDetail 审批申请详情.
OAApprovalDetailApplicant 审批申请详情申请人信息.
OAApprovalDetailComment 审批申请备注信息,可能有多个备注节点.
OAApprovalDetailCommentUserInfo 备注人信息.
OAApprovalDetailNotifier 抄送信息,可能有多个抄送节点.
OAApprovalDetailSpRecord 审批流程信息,可能有多个审批节点。.
OAApprovalDetailSpRecordDetail 审批节点详情,一个审批节点有多个审批人.
OAApprovalDetailSpRecordDetailApprover 分支审批人.
OAApprovalInfo 审批申请状态变化回调通知.
OAApprovalInfoApplicant 申请人信息.
OAApprovalInfoComment 审批申请备注信息,可能有多个备注节点.
OAApprovalInfoCommentUserInfo 备注人信息.
OAApprovalInfoFilter 备注人信息.
OAApprovalInfoNotifier 抄送信息,可能有多个抄送节点.
OAApprovalInfoSpRecord 审批流程信息,可能有多个审批节点。.
OAApprovalInfoSpRecordDetail 审批节点详情。当节点为标签或上级时,一个节点可能有多个分支.
OAApprovalInfoSpRecordDetailApprover 分支审批人.
OAApprover 审批流程信息.
OAContent 审批申请详情,由多个表单控件及其内容组成,其中包含需要对控件赋值的信息.
OAContentBankAccount 时长组件.
OAContentBankAccountBank 银行信息.
OAContentDate 日期/日期+时间内容.
OAContentDateRange 时长组件.
OAContentDateRangeTimezoneInfo 时区信息.
OAContentDepartment 所选部门内容,即申请人在此控件选择的部门,多选模式下可能有多个.
OAContentFile 附件.
OAContentFormula 公式控件.
OAContentLocation 位置控件.
OAContentMember 所选成员内容,即申请人在此控件选择的成员,多选模式下可以有多个.
OAContentPunchCorrection 补卡组件.
OAContentRelatedApproval 关联审批单控件.
OAContents 审批申请详情,由多个表单控件及其内容组成,其中包含需要对控件赋值的信息.
OAContentSelector 类型标志,单选/多选控件的config中会包含此参数.
OAContentSelectorOption 多选选项,多选属性的选择控件允许输入多个.
OAContentTableList 子明细列表,在此填写子明细的所有子控件的值,子控件的数据结构同一般控件.
OAContentVacation 请假内容,即申请人在此组件内选择的请假信息.
OAContentVacationAttendance 假勤组件.
OAContentVacationAttendanceDateRange 假勤组件时间选择范围.
OAContentVacationAttendanceSliceInfo 假勤组件时长支持按天分片信息, 2020/10/01之前的历史表单不支持时长分片.
OAContentVacationAttendanceSliceInfoDayItem 假勤组件时长支持按天分片信息,每一天的分片时长信息.
OAContentValue 控件值 ,需在此为申请人在各个控件中填写内容不同控件有不同的赋值参数,具体说明详见附录。模板配置的控件属性为必填时,对应value值需要有值。.
OASetOneUserVacationQuota 修改成员假期余额.
OASummaryList 摘要行信息,用于定义某一行摘要显示的内容.
OATemplateControl 模板控件信息.
OATemplateControlConfig 模板控件配置.
OATemplateControlConfigAttendance 类型标志,假勤控件的config中会包含此参数.
OATemplateControlConfigAttendanceDateRange 假期控件属性.
OATemplateControlConfigContact 类型标志,单选/多选控件的config中会包含此参数.
OATemplateControlConfigDate 类型标志,日期/日期+时间控件的config中会包含此参数.
OATemplateControlConfigSelector 类型标志,单选/多选控件的config中会包含此参数.
OATemplateControlConfigSelectorOption 选项,包含单选/多选控件中的所有选项,可能有多个.
OATemplateControlConfigTable 类型标志,明细控件的config中会包含此参数.
OATemplateControlConfigTips 类型标志,说明文字控件的config中会包含此参数.
OATemplateControlConfigTipsContent 类型标志,说明文字控件的config中会包含此参数.
OATemplateControlConfigTipsContentSubText 类型标志,说明文字控件的config中会包含此参数.
OATemplateControlConfigTipsContentSubTextContent 类型标志,说明文字控件的config中会包含此参数.
OATemplateControlConfigTipsContentSubTextContentLink 类型标志,说明文字控件的config中会包含此参数.
OATemplateControlConfigTipsContentSubTextContentPlain 类型标志,说明文字控件的config中会包含此参数.
OATemplateControlConfigTipsContentText 类型标志,说明文字控件的config中会包含此参数.
OATemplateControlConfigVacation 类型标志,假勤控件的config中会包含此参数.
OATemplateControlConfigVacationItem 类型标志,假勤控件的config中会包含此参数.
OATemplateControlProperty 模板控件属性.
OATemplateControls 模板控件数组。模板详情由多个不同类型的控件组成,控件类型详细说明见附录。.
OATemplateDetail 审批模板详情.
OAText 通用文本信息.
项列表,下拉选项不超过 10 个,最少1个.
QuoteArea 引用文献样式.
Recipient 消息收件人定义.
ReqChatList 获取客户群列表参数.
ReqChatListOwnerFilter 群主过滤.
RespGroupChatInfo 客户群详情.
RespGroupChatList 客户群列表结果.
RxMessage 一条接收到的消息.
SelectList 下拉式的选择器列表,multiple_interaction类型的卡片该字段不可为空,一个消息最多支持 3 个选择器.
SendWelcomeMsgExternalContact 发送新客户欢迎语请求参数.
Source 卡片来源样式信息,不需要来源样式可不填写.
SubmitButton 提交按钮样式.
TaskCardBtn 任务卡片消息按钮.
Text 文本消息.
UserDeptInfo 用户部门信息.
UserDetail 成员详细信息的公共字段.
UserIdentityInfo 访问用户身份信息.
UserInfo 用户信息.
UserVacationQuota 假期列表.
Video 视频消息.
WebhookClient 群机器人客户端.
Workwx 企业微信客户端.
WorkwxApp 企业微信客户端(分应用) nolint:revive // The (stuttering) name is part of public API, so cannot be fixed without a v2 bump.
WorkwxClientError 企业微信客户端 SDK 的响应错误 nolint:revive // The (stuttering) name is part of public API, so cannot be fixed without a v2 bump.

# Interfaces

CtorOption 客户端对象构造参数.
EventAddExternalContact 添加企业客户事件的参数。.
EventAddHalfExternalContact 外部联系人免验证添加成员事件。.
EventChangeExternalChat 客户群变更事件.
EventDelExternalContact 删除企业客户事件.
EventDelFollowUser 删除跟进成员事件.
EventEditExternalContact 编辑企业客户事件的参数。.
EventKfMsgOrEvent 客服接收消息和事件.
EventSysApprovalChange 审批申请状态变化回调通知.
EventTransferFail 客户接替失败事件.
ImageMessageExtras 图片消息的参数。.
ITokenProvider 是鉴权 token 的外部提供者需要实现的 interface。可用于官方所谓 使用“中控服务”集中提供、刷新 token 的场景。 不同类型的 tokens(如 access token、JSAPI token 等)都是这个 interface 提供, 实现方需要自行掌握 token 的类别,避免在 client 构造函数的选项中传入错误的种类。.
LinkMessageExtras 链接消息的参数。.
LocationMessageExtras 位置消息的参数。.
RxMessageHandler 用来接收消息的接口。.
TextMessageExtras 文本消息的参数。.
VideoMessageExtras 视频消息的参数。.
VoiceMessageExtras 语音消息的参数。.

# Type aliases

AttachmentMsgType 附件类型.
ChangeType 变更类型.
ChatType 群发任务的类型.
EmailType 用户邮箱的类型 1表示用户邮箱是企业邮箱(默认) 2表示用户邮箱是个人邮箱.
EventType 事件类型.
ExternalContactTransferStatus 客户接替结果状态.
ExternalUserType 外部联系人的类型 1表示该外部联系人是微信用户 2表示该外部联系人是企业微信用户.
FollowUserAddWay 该成员添加此客户的来源 具体含义详见[来源定义](https://work.weixin.qq.com/api/doc/90000/90135/92114#13878/%E6%9D%A5%E6%BA%90%E5%AE%9A%E4%B9%89).
FollowUserTagType 该成员添加此外部联系人所打标签类型 1-企业设置 2-用户自定义.
KfEventType 事件类型.
KfServiceState 客服会话状态 0 未处理 新会话接入 1 由智能助手接待 2 待接入池排队中 3 由人工接待 4 已结束/未开始.
MessageType 消息类型.
MsgAuditAgreeStatus 会话中外部成员的同意状态.
MsgAuditEdition 会话内容存档版本.
OAApprovalInfoFilterKey 拉取审批筛选类型.
OAControl 控件类型.
RespAppChatInfo 企业微信接口调整 兼容处理.
RespAppchatList 企业微信接口调整 兼容处理.
SizeType qrcode尺寸类型 1: 171 x 171; 2: 399 x 399; 3: 741 x 741; 4: 2052 x 2052.
TemplateCardType 模板卡片的类型.
UserGender 用户性别.
UserStatus 用户激活信息 已激活代表已激活企业微信或已关注微工作台(原企业号)。 未激活代表既未激活企业微信又未关注微工作台(原企业号)。.