github.com/blinkbean/dingtalk组件钉钉消息发送异常问题

1,597次阅读
没有评论

共计 831 个字符,预计需要花费 3 分钟才能阅读完成。

github.com/blinkbean/dingtalk 是 golang 钉钉机器人客户端。支持文本、链接、Markdown、ActionCard、FeedCard 类型消息的发送,Outgoing 机器人消息的接收。通过钉钉机器人接口和不同消息的封装,达到简单快速发送不同类型消息的目的。

使用此组件发送消息可能会出现发送消息方法 err 判断返回成功而钉钉 json 消息失败的情况。

具体如下:

使用 cli.SendMarkDownMessageBySlice 方法发送 md 格式消息,通过 err 判断返回状态正常,但是一直收不到消息。
经过追踪发现钉钉会在返回 200 状态码情况下返回 json 格式 err 错误信息,如下面所示👇

{"errcode":400402,"errmsg":"description: 参数 markdown --》title 缺失,或者参数格式不正确; solution: 请填充上对应参数;link: 请参考本接口对应文档查看参数获取方式,或者在 https://open.dingtalk.com/document/  搜索对应文档;"}

代码中的判断会认为发送消息成功

if resp.StatusCode != http.StatusOK {body, _ := ioutil.ReadAll(resp.Body)
	return fmt.Errorf("send msg err: %s, token: %s, msg: %s", string(body), d.robotToken, msg.Marshaler())
}

以上问题在使用此组件中如果 markdown 消息错误的情况下就会发生。此问题已反馈给作者,使用 github 最新代码即可解决此问题

https://github.com/blinkbean/dingtalk/commit/231a2a43f43fcb3ef747c9efb106ab987de9e067

问题: https://github.com/blinkbean/dingtalk/issues/4

正文完
 0
ddn
版权声明:本站原创文章,由 ddn 2023-10-10发表,共计831字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)