dingtalk-plugin icon indicating copy to clipboard operation
dingtalk-plugin copied to clipboard

这个插件发起的通知里面可以把 @被通知人 插入消息中间,而不是结尾吗?

Open huxiang opened this issue 1 year ago • 2 comments

使用 Python 计算签名,再用 http post 的方法发送通知:

DingTalk.send_message({
    "msgtype": "markdown",
    "markdown": {
        "title": "测试标题",
        "text": "测试消息开始 @139xxxxxxxx 测试消息结束",
    },
    "at": {
        "atMobiles": ['139xxxxxxxx']
    }
})

这样得到的消息大概是这样 (抱歉,不方便截图)

测试消息开始 @被通知人 测试消息结束

但是使用 Jenkins 钉钉插件,得到的的消息是这样的

测试消息开始 @被通知人 测试消息结束
@被通知人

官方文档也有样例: https://jenkinsci.github.io/dingtalk-plugin/guide/freestyle.html

Image

huxiang avatar Nov 12 '24 01:11 huxiang

执行人是插件内置的字段,下面那一行是额外配置的 @ 信息

liuweiGL avatar Nov 19 '24 03:11 liuweiGL

执行人是插件内置的字段,下面那一行是额外配置的 @ 信息

恩,如果是用 Pipeline script 呢?比如:

pipeline {
    agent any

    stages {
        stage('Hello') {
            steps {
                dingtalk(
                    robot: 'robot-01',
                    type: 'MARKDOWN',
                    title: '测试标题',
                    text: ['测试消息开始 @139xxxxxxxx 测试消息结束'],
                    at: ['139xxxxxxxx']
                    )
            }
        }
    }
}

这种期望得到的通知消息是:

测试消息开始 @被通知人 测试消息结束

而实际是:

测试消息开始 @被通知人 测试消息结束
@被通知人

如上所述,使用钉钉开发文档的 Python 示例去调用发消息的接口,可以得到期望的通知消息。

huxiang avatar Nov 19 '24 04:11 huxiang