1. 概述
微信钉钉集成后,单点失败了、推送失败了、部分用户收不到消息,怎么排查?使用微信钉钉日志。
2. 排查步骤
2.1 开启日志
微信调试页面
在平台地址后加上/url/weixin/start/debugger 进入微信调试页面。
钉钉调试页面
在平台地址后加上/url/dingtalk/start/debugger进入钉钉调试页面。
举例:
1)进入微信调试界面:http://secure.finedevelop.com:65081/webroot/decision/url/weixin/start/debugger,
2)日志级别选择「debug」模式,点击「保存」。如下图所示:
3)重启工程,否则可能切换不生效。
2.2 操作复现
在开启 debug 模式并重启工程后,返回平台复现问题步骤。
2.3 日志获取
2.3.1 操作步骤
注:微信钉钉插件版本在10.4.69-10.4.97之间和集群环境获取方法:weixin.log/dingtalk.log,位于fanruan.log同级目录,手动获取。
微信钉钉插件版本在10.4.975及以上的非集群环境,可以直接在日志界面「点击下载」,如下图所示:
2.3.2 注意事项
若下载的分析日志出现乱码,可以进入日志下载的所在位置,删除日志文件,并重新下载日志。
weixin.log/dingtalk.log,示例位于 %FineBI%/logs/fanruan.log 同级目录的对应文件夹weixin/dingtalk下,手动获取,如下图所示:
2.4 日志分析
日志最左边的一行记录时间,根据操作的时间,在日志中找对应时间,然后查看对应的日志信息。
由于日志记录不是按照任务整理排序的,而是按照执行时间,所以确认是同一个任务的日志,需要根据前面的线程名称来确认,如下图中的推送任务和同步任务的不同。
对于一些报错,会产生错误码。用户可参照错误码,在文档:微信钉钉错误码对照表 查找原因,并进行问题排查。情况如下图所示:
3. 常见失败场景
3.1 单点失败
假如是匹配不到用户,在日志中的记录如下,可根据日志信息调整匹配方式或者确认用户信息,比如这个报错就是因为平台中没有这个手机号的用户,可在用户管理中确认:
假如是应用信息不对,在日志中的记录见下,比如这个报错就是因为sb参数不对的情况,一般需要重新配置一下微信后台的链接,可通过微信管理中的应用快捷配置处,重新生成微信链接,挂载到微信后台,一般sb参数改变是因为在微信管理中删除过应用。
3.2 推送失败
一般跟单点失败的场景比较类似,查看日志的方法都是一样的。
3.3 同步失败
正常场景:
会有开始同步和同步结束的日志,并且会显示每个部门同步情况.
关于钉钉同步的特殊场景:
钉钉在00:00:00分同步的时候,部分客户遇到了同步失败的场景,这个是因为钉钉服务器的问题。
详细的日志中会显示"errcode":90002,"errmsg":"您的服务器调用钉钉开放平台当前接口的所有请求都被暂时禁用了"
debug日志中一般表现为:可以看出来并没有部门的信息,所以会导致通讯录为空,如下图所示:
解决方案:
客户将同步的时间改成其他时间,不要用00:00:00的时间进行同步。
3.4 特殊场景
若客户设置了代理转发,日志中显示单点成功,但是实际单点失败。
1)先判断单点后的 url 域名是否正确。
2)从「微信管理」中生成平台链接或者模板链接
3)手机端单点成功后点击微信右上角把链接复制出来,比较redirecturl后面的域名是否一致,若是nginx转发后域名没有保持住也会有单点失败的问题。
失败案例:
微信管理生成链接,如下图所示:
单点后复制出来的链接,域名不一致。如下图所示:
因此,需要客户修改nginx配置,确保转发后的域名一致。
4. 总结
一般微信钉钉单点失败、推送失败、同步通讯录失败都可以通过微信钉钉日志分析出原因并找出解决方案,若是无法判断的,在提bug的时候带上日志,能更快的定位到原因。