钉钉机器人始终 “errcode”:-1,”errmsg”:”系统繁忙”

状况描述

最近要触发一个动作后给钉钉发送一个消息,然而每次都提示系统繁忙,本地DEBUG又每次都正常,这就尴尬了,更尴尬的是消息居然发生成功了。

网友的状况

网上一搜索此类的状态一大堆,最终的结论无非就是几类,1:参数错误, 2:ContentType错误,3:你太垃圾。

网络调试

已经在自己服务器上用mitmproy进行调试了,果然每次都出错,检查参数本地调试一切OK,没错啊。每次都让我怀疑人生,几行代码来来回回折腾几个小时。

最终发现问题

手贱点了一下reply,结果是没问题的,于是我就开始怀疑是不是阿里的服务太傻逼。

请求消息体如下:

{
    "at": {
        "atMobiles": [],
        "isAtAll": false
    },
    "markdown": {
        "text": "**已关闭**\n![](https://image.example.com/61e0754.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20220108T005645Z&X-Amz-Expires=21600&X-Amz-Credential=X22HMKDFEPX1RZ1R8ZYC%2F20220108%2F%2Fs3%2Faws4_request&x-amz-content-sha256=UNSIGNED-PAYLOAD&X-Amz-SignedHeaders=host&X-Amz-Signature=f43d8c452290540b7445b9fffbc9603b14f522b1ffa2d2db27cfe53738f31ce6)\n时间: 2022-01-08 08:56:32.7465",
        "title": "已关闭"
    },
    "msgtype": "markdown"
}

这里发送了一张图片过去,图片是阿里直接在服务器下载的。每次消息发送成功说明服务器是有下载的,但是呢图片是没有缓存的,第一次下载耗时比较久,阿里等不了这么久就直接报错了,而且还是这种迷迷糊糊的报错。第二次成功的原因就是它有缓存了啊,肯定就快了啊,然后就正常了,此处一万只马路过。

解决方案

图片换个地方存储就行了,面对几个选择,1:阿里云oss(太贵),2:其他oss(太贵)。第三方存储都太贵了,只能随便找个服务器存着,然后过几分钟删除完事。

最终

还没写逻辑,太恶心了,你直接支持上传图片会死啊,迟早倒闭。

当前还没有任何评论

写下你最简单的想法