sql server 钉钉推送link 消息

DECLARE @WebhookUrl NVARCHAR(MAX)
DECLARE @Message NVARCHAR(MAX)
DECLARE @HttpStatus INT
DECLARE @HttpBody VARCHAR(MAX)
DECLARE @Handle int
-- 钉钉机器人Webhook地址
SET @WebhookUrl = 'https://oapi.dingtalk.com/robot/send?access_token=88664a4f8ff5239c4dc93dd8d59e105cbdd3aea4910bad2df306f4ff46648900'

-- 图片链接消息
declare @内容 nVARCHAR(max)
set @内容=substring( convert(varchar,getdate(),120),1,16)+N' 测试 '
SET @Message = '{"msgtype":"link","link":{"text":"推送","title":"'+@内容+'","picUrl":"https://images.cnblogs.com/cnblogs_com/blogs/718800/galleries/2294157/o_230330085502_1.png","messageUrl":"https://example.com/article"}}'

-- 发送HTTP POST请求到钉钉机器人Webhook
EXEC @HttpStatus = sp_OACreate 'MSXML2.XMLHTTP', @Handle OUT
IF @HttpStatus <> 0
BEGIN
EXEC sp_OAGetErrorInfo @Handle
RETURN
END

EXEC @HttpStatus = sp_OAMethod @Handle, 'open', NULL, 'POST', @WebhookUrl, false
IF @HttpStatus <> 0
BEGIN
EXEC sp_OAGetErrorInfo @Handle
RETURN
END

EXEC @HttpStatus = sp_OAMethod @Handle, 'setRequestHeader', NULL, 'Content-Type', 'application/json'
IF @HttpStatus <> 0
BEGIN
EXEC sp_OAGetErrorInfo @Handle
RETURN
END

EXEC @HttpStatus = sp_OAMethod @Handle, 'send', NULL, @Message
IF @HttpStatus <> 0
BEGIN
EXEC sp_OAGetErrorInfo @Handle
RETURN
END

EXEC @HttpStatus = sp_OAMethod @Handle, 'responseText', @HttpBody OUTPUT
IF @HttpStatus <> 0
BEGIN
EXEC sp_OAGetErrorInfo @Handle
RETURN
END

-- 释放对象
EXEC sp_OADestroy @Handle

-- 检查钉钉机器人响应
IF @HttpBody = '{"errcode":0,"errmsg":"ok"}'
PRINT '消息已成功发送给钉钉机器人'
ELSE
PRINT '消息发送给钉钉机器人失败: ' + @HttpBody

 

posted @ 2024-05-24 17:00  感生  阅读(1)  评论(0编辑  收藏  举报