凌晨出现这样的日志:
2022-01-02 02:30:43.436 [http-nio-9092-exec-10] ERROR topsdk - 2022-01-02 02:30:43.436^_^_dingtalk_^_^dingtalk.oapi.sns.getuserinfo_bycode^_^127.0.0.1^_^Linux^_^117^_^https://oapi.dingtalk.com/sns/getuserinfo_bycode^_^tmp_auth_code=f9427813107934beaa58544eab54dd17^_^{"errcode":853002,"errmsg":"签名时间戳参数超时"}
赶紧查找分析相关的代码,添加日志和再读官方文档,发现并无问题。
后经过分析和多方查找,终于发现原因如下:
853002,timestamp参数不合法,该参数值与钉钉服务器当前时间相差超过1分钟;请检查服务器时间。
参考文档:{“errcode":853002,"errmsg":"签名时间戳参数超时"}-钉钉帮助中心
这下实锤了,赶紧检查服务器时间,结果发现果然是 UCloud 云主机上的时间与 NTP 服务的标准时间相差超过1分钟了。
立即同步,命令为:
ntpdate -u ntp2.aliyun.com
同步完成后,进一步修改 /etc/ntp.conf,在末尾加上:
server ntp2.aliyun.com iburst
server ntp3.aliyun.com iburst
server ntp4.aliyun.com iburst
然后重启 ntpd 服务。