企业微信API
2021-08-19 10:57:29 228 举报
AI智能生成
企业微信3.0 企业微信API
作者其他创作
大纲/内容
第三方应用开发
参数说明
suite_id<br><i>第三方应用ID</i><br>
suite_secret<br><i>第三方应用密钥</i><br>
获取方法为:登录服务商管理后台->标准应用服务->应用管理栏,点进某个应用即可看到
provider_secret
获取方法为:登录服务商管理后台->标准应用服务->通用开发参数
suite_ticket (安全凭证)<br><i>有效期为30分钟</i><br>
服务商的token
应用授权的token
企业接口的token
服务商注册&配置
注册条件
拥有企业微信
用系统管理员身份在“企业微信服务商官网”进行申请
企业Logo
企业简介
企业官网
配置开发信息
ProviderSecret
系统事件接收URL
Token
EncodingAESKey
白名单IP
应用创建
普通应用
通讯录应用<br>
一家企业只能授权一个通讯录应用
应用上线
提交上线
3个工作日内完成审核
上线应用
服务端API
规则与说明
所有的接口需使用<b>HTTPS协议</b>、JSON数据格式、<b><font color="#c41230">UTF8编码</font></b>
请求地址,参数中<b>标注大写的单词</b>,表示为<b>需要替换的变量</b>
返回结果<b><font color="#c41230">根据errcode</font></b>存在且不为0判断为失败,否则为成功
<b><font color="#f15a23">access_token</font></b>
<font color="#f15a23">provider_access_token</font><br><i>服务商的token </i><br>
corpid(服务商CorpID)
provider_secret(服务商密钥)
<font color="#f15a23">suite_access_token</font><br><i>第三方应用的token </i><br>
suite_id(第三方应用ID)
suite_secret(第三方应用密钥)
suite_ticket (安全凭证)<br><i>有效期为30分钟</i><br>
<font color="#f15a23">access_token</font><i><br>授权企业的token </i><br>
企业安装第三方应用后
第三方服务商以企业的corpid
永久授权码
回调配置
三个配置项
URL<br>回调服务地址<br>
需要能同时支持HttpGet以及HttpPost两种能力
验证逻辑:<br>企业微信往URL服务上发一条Get请求带签名及密文参数到URL服务上,如果URL服务检查签名通过,并能正确返回密文参数对应的明文字符串,则验证通过。<br>
Token<br>用于计算签名<br>
分辨出是否为企业微信来源<br>分辨出推送消息的内容是否被篡改<br>
英文或数字组成且长度不超过32位的自定义字符串
EncodingAESKey<br>用于消息内容加密<br>
英文或数字组成且长度为43位的自定义字符串
将发送的内容进行加密,并组装成一定格式后再发送
Http Get请求<br>验证URL有效性
参数说明
<b>msg_signature</b><br><i>企业微信加密签名<br>String</i>
计算规则<br>sha1(sort(token、timestamp、nonce、msg_encrypt))
<b>timestamp</b><br><i>时间戳<br>Integer</i><br>
<b>nonce</b><br><i>随机数<br>Sting</i>
<b>echostr </b><br><i>加密的字符串<br>String</i>
需要解密得到消息内容明文,解密后有random、msg_len、msg、receiveid四个字段<br>其中msg即为消息内容明文
①对密文BASE64解码aes_msg=Base64_Decode(msg_encrypt)<br><b><font color="#c41230">②AESKey = Base64_Decode(EncodingAESKey + "=")</font></b><br>③使用AESKey做AES-256-CBC解密 rand_msg = aes_decrypt(aes_msg, <b><font color="#c41230">AESKey</font></b>)<br>④去掉rand_msg头部的16个随机字节和4个字节的msg_len,截取msg_len长度的部分即为msg,剩下的为尾部的receiveid
参数值需要做Urldecode处理
<b><font color="#c41230">1秒内</font></b>响应GET请求,响应内容为得到的明文消息内容(不能加引号,不能带bom头,不能带换行符)
Http Post请求<br>接收业务数据
企业微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次
XML数据格式
获取企业微信服务器的ip段
建议企业每天定时拉取IP段,更新防火墙设置,避免因IP段变更导致网络不通
当IP段变更时,新旧IP段会同时保留一段时间
https://qyapi.weixin.qq.com/cgi-bin/getcallbackip?access_token=ACCESS_TOKEN<br>GET
应用授权
授权方式
从服务商网站发起
从企业微信应用市场发起<br>
通讯录权限体系
相关接口
通讯录管理
secret
通讯录管理secret<br><i>建议此种方式</i>
应用secret<br>
通讯录展示组件
浏览器方案
小程序方案
服务商需存储接入企业的参数
corpid
永久授权码
通讯录管理secret
客户联系secret
问题
应用如何设置为通讯录应用
内部:服务端API
规则与说明
所有的接口需使用<b>HTTPS协议</b>、JSON数据格式、<b><font color="#c41230">UTF8编码</font></b>
请求地址,参数中<b>标注大写的单词</b>,表示为<b>需要替换的变量</b>
返回结果<b><font color="#c41230">根据errcode</font></b>存在且不为0判断为失败,否则为成功
开发者工具
调用频率限制
调用单个cgi/api不可超过2000次/分,30000次/小时
每ip调用单个cgi/api不可超过20000次/分,600000次/小时
所有应用创建群数累积不可超过1000/天
所有应用变更群次数累积不可超过100/小时
基本概念介绍
corpid
每个企业都拥有唯一的corpid,获取此信息可在管理后台“我的企业”-“企业信息”下查看“企业ID”(需要有管理员权限)
userid
每个成员都有唯一的userid,即所谓“帐号”
agentid
每个应用都有唯一的agentid
secret
secret是企业应用里面用于保障数据安全的“钥匙”,每一个应用都有一个独立的访问密钥,为了保证数据的安全,secret务必不能泄漏
access_token
access_token是企业后台去企业微信的后台获取信息时的重要票据,<b><font color="#c41230">由corpid和secret产生</font></b>。所有接口在通信时都需要携带此信息用于验证接口的访问权限
<b><font color="#c41230">获取access_token</font></b>
<b>注意:不能频繁调用gettoken接口,否则会受到频率拦截</b>
开发者需要缓存access_token
有效期通过返回的<b><font color="#c41230">expires_in</font></b>来传达
默认7200秒(<b>2小时</b>)有效
有效期内<b><font color="#c41230">重复获取返回相同结果</font></b>,过期后获取会返回新的access_token
<b>每个应用的access_token是彼此独立的</b>
回调配置
三个配置项
URL<br>回调服务地址<br>
需要能同时支持HttpGet以及HttpPost两种能力
验证逻辑:<br>企业微信往URL服务上发一条Get请求带签名及密文参数到URL服务上,如果URL服务检查签名通过,并能正确返回密文参数对应的明文字符串,则验证通过。<br>
Token<br>用于计算签名<br>
分辨出是否为企业微信来源<br>分辨出推送消息的内容是否被篡改<br>
英文或数字组成且长度不超过32位的自定义字符串
EncodingAESKey<br>用于消息内容加密<br>
英文或数字组成且长度为43位的自定义字符串
将发送的内容进行加密,并组装成一定格式后再发送
Http Get请求<br>验证URL有效性
参数说明
<b>msg_signature</b><br><i>企业微信加密签名<br>String</i>
计算规则<br>sha1(sort(token、timestamp、nonce、msg_encrypt))
<b>timestamp</b><br><i>时间戳<br>Integer</i><br>
<b>nonce</b><br><i>随机数<br>Sting</i>
<b>echostr </b><br><i>加密的字符串<br>String</i>
需要解密得到消息内容明文,解密后有random、msg_len、msg、receiveid四个字段<br>其中msg即为消息内容明文
①对密文BASE64解码aes_msg=Base64_Decode(msg_encrypt)<br><b><font color="#c41230">②AESKey = Base64_Decode(EncodingAESKey + "=")</font></b><br>③使用AESKey做AES-256-CBC解密 rand_msg = aes_decrypt(aes_msg, <b><font color="#c41230">AESKey</font></b>)<br>④去掉rand_msg头部的16个随机字节和4个字节的msg_len,截取msg_len长度的部分即为msg,剩下的为尾部的receiveid
参数值需要做Urldecode处理
<b><font color="#c41230">1秒内</font></b>响应GET请求,响应内容为得到的明文消息内容(不能加引号,不能带bom头,不能带换行符)
Http Post请求<br>接收业务数据
企业微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次
XML数据格式
获取企业微信服务器的ip段
建议企业每天定时拉取IP段,更新防火墙设置,避免因IP段变更导致网络不通
当IP段变更时,新旧IP段会同时保留一段时间
https://qyapi.weixin.qq.com/cgi-bin/getcallbackip?access_token=ACCESS_TOKEN<br>GET
回调事件
添加企业客户事件<br><i>配置了客户联系功能的成员添加外部联系人时,回调该事件</i><br>
外部联系人免验证添加成员事件<br><i>外部联系人添加了配置了客户联系功能且开启了<b>免验证</b>的成员时(此时成员尚未确认添加对方为好友),回调该事件</i><br>
删除企业客户事件<br><i>配置了客户联系功能的成员删除外部联系人时,回调该事件</i><br>
删除跟进成员事件<br><i>配置了客户联系功能的成员被外部联系人删除时,回调该事件</i><br>
客户群变更事件<br><i>客户群被修改后(群名变更,群成员增加或移除),回调该事件</i><br>
获取企业微信API域名IP段
https://qyapi.weixin.qq.com/cgi-bin/get_api_domain_ip?access_token=ACCESS_TOKEN <br>GET
<b>外部联系人管理</b>
<b>外部联系人</b>分为<b><font color="#c41230">企业微信联系人</font></b>和<b><font color="#c41230">微信联系人</font></b>两种类型
销售同事需配置客户联系功能
必须先做好关联绑定微信开发者ID<br><b><font color="#c41230">绑定的公众号或小程序主体需与企业微信主体一致,暂且支持绑定一个</font></b>
<b>设置同事对外展示信息</b><br>
目前支持文本、网页、<b><font color="#c41230">小程序</font></b>三种类型<br><b>必须是有在本企业安装授权的小程</b>
<b><font color="#c41230">配置客户联系「联系我」</font></b>
微信小程序接入按钮
生成专属的「联系我」二维码
每个企业可通过API最多配置10万个「联系我」
需要妥善存储返回的config_id<br>config_id丢失可能导致无法编辑或删除「联系我」
<b><font color="#c41230">获取客户列表</font></b>
企业可通过此接口获取指定成员添加的客户列表。<br>客户是指配置了客户联系功能的成员所添加的<b>外部联系人</b>。<br><b>没有配置客户联系功能的成员,所添加的外部联系人将不会作为客户返回</b>。
<b>权限说明:</b><br>企业需要使用“客户联系”secret或配置到“可调用应用”列表中的自建应用secret所获取的accesstoken来调用(accesstoken如何获取?);<br>第三方应用需拥有“企业客户”权限。<br>第三方/自建应用只能获取到<b>可见范围内的配置</b>了客户联系功能的成员。<br>
请求参数
access_token
userid<br><i>企业成员的userid</i><br>
返回参数
external_userid <br><i>外部联系人的userid列表</i><br>
<b><font color="#c41230">获取客户详情</font></b>
请求参数
access_token
external_userid<br><i>外部联系人的userid,注意不是企业成员的帐号</i><br>
返回核心参数
name<br><i>外部联系人的姓名或别名</i><br>
avatar<br><i>外部联系人头像,第三方不可获取</i><br>
type<br><i>外部联系人的类型,1表示该外部联系人是微信用户,2表示该外部联系人是企业微信用户</i><br>
unionid<br>外部联系人在微信开放平台的唯一身份标识(微信unionid)<br>必须先做好关联绑定微信开发者ID,<b><font color="#c41230">绑定的公众号或小程序主体需与企业微信主体一致,暂且支持绑定一个</font></b>
<b>follow_user</b><br><b><font color="#c41230">所有添加此用户企业同时都可以获取</font></b><br>
userid(添加了此外部联系人的企业成员userid)
remark (该成员对此外部联系人的备注)
createtime (该成员添加此外部联系人的时间)
tags(该成员添加此外部联系人所打标签,有下级tag详细信息)
remark_corp_name (该成员对此客户备注的企业名称)
state (该成员添加此客户的渠道,由用户通过创建「联系我」方式指定)
<b>权限说明:</b><br>企业需要使用“客户联系”secret或配置到“可调用应用”列表中的自建应用secret所获取的accesstoken来调用(accesstoken如何获取?);<br>第三方/自建应用调用时,返回的跟进人follow_user仅包含应用可见范围之内的成员。
修改客户备注信息
请求参数
access_token
userid (企业成员的userid)
external_userid (外部联系人userid)
remark(此用户对外部联系人的备注)
description(此用户对外部联系人的描述)
remark_company (此用户对外部联系人备注的所属公司名称,为微信用户时有效)
remark_mobiles (此用户对外部联系人备注的手机号,会覆盖旧的备注手机号,清除所有手机号填写一个空字符串(“”))
remark_pic_mediaid(备注图片的mediaid,可以通过素材管理接口获得)
获取客户群列表
权限说明:<br>企业需要使用“客户联系”secret或配置到“可调用应用”列表中的自建应用secret所获取的accesstoken来调用(accesstoken如何获取?)。<br>暂不支持第三方调用。
请求参数
access_token
status_filter (群状态过滤)<br>非必填<br>
owner_filter (群主过滤。如果不填,表示获取全部群主的数据)<br>非必填<br>
userid_list (用户ID列表。最多100个)<br>非必填
partyid_list(部门ID列表。最多100个)<br>非必填
offset(分页,偏移量)
limit(分页,预期请求的数据量,取值范围 1 ~ 1000)
返回参数
group_chat_list (客户群列表)
chat_id
status(客户群状态)
获取客户群详情<br>
权限说明:<br>企业需要使用“客户联系”secret或配置到“可调用应用”列表中的自建应用secret所获取的accesstoken来调用(accesstoken如何获取?)。<br>暂不支持第三方调用。
请求参数
access_token
chat_id(客户群ID)
返回参数
chat_id
name(群名)<br>
owner(群主ID)
create_time(群的创建时间)
notice (群公告)
member_list<br>群成员列表<br>
userid
type(成员类型)
join_time(入群时间)
join_scene(入群方式)
添加企业群发消息任务
企业可通过此接口添加企业群发消息的任务并通知客服人员发送给相关客户
<b><font color="#c41230">限制:</font></b><br>调用该接口并不会直接发送消息给客户,需要相关的<b>客服人员操作</b>以后才会实际发送(客服人员的企业微信需要升级到2.7.5及以上版本)<br>同一个企业对一个客户<b>一个自然周</b>内(周一至周日)<b>至多只能发送一条消息</b>,超过限制的用户将会被忽略。<br>
<b>可发送文本、图文、小程序</b>
发送新客户欢迎语
企业微信在向企业推送添加外部联系人事件时,会额外返回一个welcome_code,企业以此为凭据调用接口,可通过成员向新添加的客户发送个性化的欢迎语
<b><font color="#c41230">限制:</font></b><br>企业仅可在收到相关事件后20秒内调用,且只可调用一次<br>多应用配置时,仅有最先调用的可以发送成功<br>如果已经开始聊天,发送失败
获取离职成员的客户列表<br>
离职成员的外部联系人再分配<br>
离职成员的群再分配<br>
获取联系客户统计数据
企业可通过此接口获取成员联系客户的数据,包括发起<b>申请数、新增客户数、聊天数、发送消息数和删除/拉黑成员</b>的客户数等指标。<br>
获取客户群统计数据<br>
获取指定日期全天的统计数据。注意,企业微信仅存储60天的数据。
0 条评论
下一页