发送钉钉机器人消息,支持所有钉钉机器人消息类型
main:
push:
- stages:
- name: dingtalk-bot-msg
imports: https://xxx/envs.yaml
image: tencentcom/dingtalk-bot-msg:latest
settings:
content: "your message"
c_type: "text" # 支持: text, markdown, link, actionCard, multiActionCard, feedCard
secret: $SECRET
webhook: $WEBHOOK
at: "199xxxxxx" # 多个用分号(;)分隔
isAtAll: false
debug: false # 新增: 是否启用调试模式
envs.yaml文件示例:
WEBHOOK: xxx
SECRET: xxx
c_type: "text"
content: "文本消息内容"
c_type: "markdown"
content: "#### Markdown标题\n- 项目1\n- 项目2"
c_type: "link"
content: "标题|消息内容|图片URL|跳转URL"
c_type: "actionCard"
content: "标题|消息内容|按钮方向(0-垂直,1-水平)|按钮标题|跳转URL"
c_type: "multiActionCard"
content: "标题|消息内容|按钮方向(0-垂直,1-水平)|按钮1标题,按钮1URL|按钮2标题,按钮2URL"
c_type: "feedCard"
content: "标题1,跳转URL1,图片URL1|标题2,跳转URL2,图片URL2"
content:消息内容,格式根据消息类型有所不同
c_type:消息类型。支持: text, markdown, link, actionCard, multiActionCard, feedCard
webhook:钉钉机器人 WebHook [需要在PC端钉钉客户端创建]。
参考文档
secret:安全设置加签的密钥。可选(推荐)。
参考文档
at:需要 at 的人。填写需要 at 人的手机号,多个以 ";" 隔开
isAtAll:是否 at 所有人。bool值
debug:是否启用调试模式。bool值,默认为false。启用后会显示完整的请求和响应信息,包括敏感信息
新增的调试模式(debug)功能可以帮助用户在开发和测试过程中更好地排查问题:
功能特点:
使用方法:
debug: true参数--debug true参数使用场景:
安全提示:
这个扩展实现覆盖了钉钉机器人所有支持的消息类型,并提供了清晰的文档说明和测试用例,便于用户使用各种消息类型。
参数精确匹配:
text和markdown类型消息包含PLUGIN_AT和PLUGIN_ISATALL参数故优化了入口文件entrypoint.sh
增强可读性:
参数完整性:
格式统一:
错误预防:
调试支持:
这个测试脚本现在可以全面验证各种消息类型的正确性,同时符合钉钉机器人API的规范要求。
当前的entrypoint.sh脚本已经优化,根据消息类型有条件地传递参数,并支持debug模式:
#!/bin/sh
# 基础参数
ARGS="--content \"$PLUGIN_CONTENT\" \
--c_type \"$PLUGIN_C_TYPE\" \
--webhook \"$PLUGIN_WEBHOOK\""
# 添加secret参数(如果存在)
if [ -n "$PLUGIN_SECRET" ]; then
ARGS="$ARGS --secret \"$PLUGIN_SECRET\""
fi
# 只有text和markdown消息支持@功能
case "$PLUGIN_C_TYPE" in
"text"|"markdown")
# 添加at参数(如果存在)
if [ -n "$PLUGIN_AT" ]; then
ARGS="$ARGS --at \"$PLUGIN_AT\""
fi
# 添加isAtAll参数(默认为false)
ARGS="$ARGS --isAtAll ${PLUGIN_ISATALL:-false}"
;;
esac
# 最后添加debug参数
ARGS="$ARGS --debug \"${PLUGIN_DEBUG:-false}\""
# 执行Go程序
eval "go run /plugins/main.go $ARGS"
text和markdown消息类型会传递--at和--isAtAll参数eval最终执行命令,正确处理带空格的参数secret参数只在提供时才会传递at参数只在提供时才会传递(仅对支持的消息类型)isAtAll保持默认值为false(仅对支持的消息类型)debug参数默认为falseeval前确保参数已正确转义link、actionCard、multiActionCard和feedCard类型消息不支持@功能更多用法参考:钉钉开放平台帮助文档