企业微信开发的那些坑(后端)

刚踏入IT这个行业正式开发的第一个项目就对接企业微信,谁知道这就是坑的开始。

v2-8b8d42517d46c5c099cb77542d4699f9_720w.jpg

1.企业微信接口频率

在跑一些批处理的时候总会频繁的调用企微的接口,遇到频率问题头疼的很

基础频率

  • 每企业调用单个cgi/api不可超过1万次/分,15万次/小时
  • 每ip调用单个cgi/api不可超过2万次/分,60万次/小时
  • 第三方应用提供商每ip调用单个cgi/api不可超过4万次/分,120万次/小时

发送应用消息频率

  • 每应用不可超过帐号上限数*200人次/天(注:若调用api一次发给1000人,算1000人次;若企业帐号上限是500人,则每个应用每天可发送100000人次的消息)
    *每应用对同一个成员不可超过30次/分钟,超过部分会被丢弃不下发
  • 发消息频率不计入基础频率

创建帐号频率

  • 每企业创建帐号数不可超过帐号上限数*3/月

创建应用频率

  • 每企业最大应用数限制为:300个;创建应用次数不可超过最大应用数*3/月,也即900次

还有一些可以看看企业微信频率文档,这边就不全(水)列出来了:developer.work.weixin.qq.com/document/pa…

2.通讯录管理

开发时涉及到同步公司组织架构(部门)和人员导入,部门名称时可以有空格空字符串的,最坑的是创建企业微信成员的时候,企业微信规定:手机号(唯一)与邮箱不能同时为空

人员信息手机号问题

2022-01-14_152000.png 开发同步人员在测试环境并未有任何异常,上了生产后发现手机号出现未设置情况

2022-01-14_152552.png

这个问题属实头疼(其他接口都会用到手机号),sql做了限制企业微信接口也有手机号限制,所以一定是客户操作导致的,网上查了很多都没有具体描述是因为什么导致的(没有干货,也许我找的姿势有问题),经过自己测试和客服给出的答案总结以下有两个原因:

  • 1.成员A账号绑定 123---手机号,B成员后来也绑定了123---手机号(需要验证码)并且成功了,那么A的手机号就变成未设置状态
  • 2.该成员加入多个企业微信,操作了手机号导致的(在一个企业绑定了手机号所有企业都会绑定这个手机号,手机号被顶掉所有企业绑定的手机号也会被顶掉)需要核实该成员是否加入其他企业微信

说白了就是用户操作导致

u=4284552075,1752915787&fm=253&fmt=auto&app=138&f=JPEG.webp

人员手机号修改问题

企业微信的账号状态有两种(不包括禁用状态) 一种是未加入状态,一种是已加入状态

扫描二维码关注公众号,回复: 13663500 查看本文章

2022-01-14_155518.png 未加入的成员手机号是可以修改的,已加入的只能用户本人自己修改.

2.消息推送

消息推送这里需要注意一下,官方给的json大概是这样的

2022-01-14_161543.png 这三个维度按需求取填写,不是一定要全写,如果全填的话会给人,和整个部门的人,带标签的部门里的人或带标签的人全推送这个消息(当初测试给个人发的时候以为要填这个人的所在的部门,结果给整个部门的人都推送了尴尬至极)官方字段解释如下:touser、toparty、totag不能同时为空

2022-01-14_162459.png

markdown消息

企业微信目前仅支持markdown语法的子集 微工作台(原企业号)不支持展示markdown消息

推送的时候还要注意json格式,

企业微信截图_15609263644103.png

不然就会这么丑

016d882a-6d45-4549-97f5-45492946eab5.png

3.会话存档

这个功能实际上就是用来收集记录企业成员与客户的聊天记录的,收费功能(比较贵)。 开发的时候会有很多细节需要注意坑也挺多的,企业微信会话存档只保留消息三天(想到哪里说到哪了)

配置公钥私钥问题

公钥私钥的配置是用来解密消息用的,具体可以在网上查找以下 【企业微信会话存档公钥】应该就会有,这里讲一下:假如公钥配置的是A,那么解密就需要对应A的私钥,如果换了公钥,那之前的消息都只能用A对应的私钥来解密,之后的消息都用的新的公钥加密的,就得用新的私钥解密

会话存档音频格式问题

非常难受的是,语音消息和语音通话消息的格式类型不一样。

  • 语音消息格式为:mar
  • 语音通话消息格式为:mp3

官方demo拉取资源是这样的(java)

2022-01-14_170129.png 标红的就是byte[]文件资源(每次只能拉512k大小) 当我拉取给语音消息设置后缀为mp3的时候,拉取下来的文件只能用电脑自带的播放器播放。网易云qq音乐啥的都显示文件有问题,原因是转化的时候会没有比特率,很头疼,后来用sauronsoftware实现格式转化以及设置比特率得到正常的mp3文件,具体怎么使用就不写了(懒)

会话存档消息类型

目前企业微信支持的消息类型也不是很全也会出现这样的问题:

2022-01-14_172047.png

会话存档SDK

官网提供了windows 和 linux 版本

2022-01-14_172355.png 也就意味着,你只能在测试上改一下测一下(难受死了),本地也测不了即使能也需要配置可信域名就是白名单IP,配置的也不能是内网的IP放弃吧,而且so那个文件一定要放对位置,不然一直报错(调通程序的第一步)公司测试环境是部署在docker上的,自己的配置设这样的(仅参考 linux): session.lib.url= /usr/lib/libWeWorkFinanceSdk_Java.so

Finance文件里是这么写的

2022-01-14_173853.png

2022-01-14_173908.png 还有一点要注意Finance放置的位置我看其他人都这么放的(不明觉厉)

2022-01-14_174156.png

会话存档拉取群聊与单聊消息的问题(很烦)

拉取下来的消息分为发送方接收方,(一堆类型不说),还分为群聊单聊,还分为内部成员外部成员聊天,还有内部-内部,(想想就知道处理起来烦死了),个人业务逻辑需要获取成员信息外部人员信息,可恶的是如果把客户删掉你就查不到客户信息,还有群聊!!!!,内部成员被拉进外部群也会有消息,这样的也不是企业的客户也会产生消息,所以一查也会报错,处理起来很费劲

4.企业微信其他问题

企业微信感觉目前还不是很完善(个人观点),更新的速度也很快,当初开发完消息推送那部分,发现企业微信又新增了一堆消息类型(敲个锤子敲)现在也是一直在更新迭代,希望功能越来越完善吧。

1dfaefcb9cfaf76590ef7fe098fc8444.jpg

还有哪些坑忘记了唉,希望能帮助大家避免一些坑减少加班,我是个大菜鸡,第一次写文章,不喜勿喷QWQ

猜你喜欢

转载自juejin.im/post/7053001272042979336