侧边栏壁纸
博主头像
路小飞博主等级

行动起来,活在当下

  • 累计撰写 72 篇文章
  • 累计创建 12 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

发送机器人消息

路小飞
2025-03-26 / 0 评论 / 0 点赞 / 4 阅读 / 2939 字

给钉钉机器人发送消息

#!/bin/bash
# Action: 测试curl发送信息给机器人
TOKEN1=123456123123
TOKEN2=qweqweqwe
# webHOOK已脱敏
WEBHOOK_URL=https://oapi.dingtalk.com/robot/send?access_token=9febd650a93383ded6f1dds16db7b123133d517821231230ce4f580ee5290e5f691d
JSON_PAYLOAD=$(jq -n --arg token1 "$TOKEN1" --arg token2 "$TOKEN2" \
  '{msgtype: "markdown",
    markdown: {
      title: "Token 推送",
      text: (
        "### Token 推送\n" +
        "**default**\n" +
        "```\n" + $token1 + "\n```\n" +
        "**job**\n" +
        "```\n" + $token2 + "\n```"
      )
    }
  }')

# 发送请求
curl -X POST "$WEBHOOK_URL" -H "content-type: application/json" -d "$JSON_PAYLOAD"
这段脚本的目的是构造一个Markdown格式的消息,并使用curl通过POST请求发送到指定的Webhook URL。脚本中主要有两个部分:构造JSON Payload和发送请求。下面是对每个字段含义的详细解析。

1. 构造包含双Token的Markdown格式
   这部分的目的是生成一个包含两个Token信息的Markdown格式的JSON字符串,该字符串将被发送到Webhook。
   JSON_PAYLOAD
   JSON_PAYLOAD=$(jq -n --arg token1 "$TOKEN1" --arg token2 "$TOKEN2" \
     '{msgtype: "markdown",
    markdown: {
      title: "Token 推送",
      text: (
        "### Token 推送\n" +
        "**default**\n" +
        "```\n\($token1)\n```\n" +
        "**job**\n" +
        "```\n\($token2)\n```"
      )
    }
     }')jq -n: jq是一个轻量级的命令行JSON处理工具,-n选项表示不读取输入,而是仅使用命令生成的JSON。
   --arg token1 "$TOKEN1":将环境变量$TOKEN1的值传递给jq并赋值给token1。
   --arg token2 "$TOKEN2":将环境变量$TOKEN2的值传递给jq并赋值给token2。
   在jq的输入中,构造的是一个JSON对象,具体内容如下:
   msgtype: "markdown":表示消息类型为Markdown。
   markdown:Markdown内容的主体。
   title: "Token 推送":Markdown消息的标题。
   text:Markdown消息的内容。这里使用多行字符串构造,包含两个Token。
   "### Token 推送\n":Markdown三级标题。
   "**default**\n":加粗文本“default”。
   "```\n\($token1)\n```":以Markdown代码块形式显示token1。
   "**job**\n":加粗文本“job”。
   "```\n\($token2)\n```":以Markdown代码块形式显示token2。
   以上生成的JSON_PAYLOAD是一个JSON字符串,表示如下:
   {
     "msgtype": "markdown",
     "markdown": {
    "title": "Token 推送",
    "text": "### Token 推送\n**default**\n```\nTOKEN1_VALUE\n```\n**job**\n```\nTOKEN2_VALUE\n```"
     }
   }其中,TOKEN1_VALUE和TOKEN2_VALUE分别使用$TOKEN1和$TOKEN2的实际值替换。
2. 发送请求
   这部分的作用是将生成的JSON Payload发送到指定的Webhook URL。
   curl命令
   curl -X POST "$WEBHOOK_URL" -H "content-type: application/json" -d "$JSON_PAYLOAD"curl:命令行工具,用于发送HTTP请求。
   -X POST:指定请求方法为POST。
   "$WEBHOOK_URL":Webhook的URL,消息将发送到这个URL。假定$WEBHOOK_URL是预先定义的环境变量,包含目标URL。
   -H "content-type: application/json":指定HTTP头content-type为application/json,表明发送的是JSON格式数
0

评论区