持续集成之消息推送:钉钉与企业微信的群聊机器人通用示例

在这里插入图片描述
使用钉钉和企业微信的群聊机器人可以进行消息推送,这篇文章使用一个简单的脚本来说明其使用方式。

推送消息的方法

钉钉或者企业微信的群机器人都可提供消息推送的功能,相关的机器人的添加和消息推送的方法可以参看:

  • 企业微信:https://liumiaocn.blog.csdn.net/article/details/103733013
  • 钉钉:https://liumiaocn.blog.csdn.net/article/details/103740826

常见的使用方法

消息推送钉钉和企业微信都支持多种方式,以下为具体的使用示例

  • 企业微信:https://liumiaocn.blog.csdn.net/article/details/103740661
  • 钉钉:https://liumiaocn.blog.csdn.net/article/details/103750906

通用消息推送示例代码

liumiaocn:chatops liumiao$ cat send_message.sh 
#!/bin/sh

usage(){
	echo "usage: $0 TYPE TITLE CONTENT [URL]"
	echo "       TYPE: wechat|dingtalk"
}

TYPE="$1"
TITLE="$2"
CONTENT="$3"
URL="$4"

CHAT_CONTENT_TYPE='Content-Type: application/json'
DEFAULT_PIC_URL="https://img-blog.csdnimg.cn/20191227152859635.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9saXVtaWFvY24uYmxvZy5jc2RuLm5ldA==,size_16,color_FFFFFF,t_70"
DINGTALK_DEFAULT_WORDS=" [LiuMiaoMsg]"
if [ $# -lt 3 ]; then
  usage
  exit 1
fi

if [ _"${TYPE}" = _"wechat" ]; then
  CHAT_WEBHOOK_URL='https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key'
elif [ _"${TYPE}" = _"dingtalk" ]; then
  CHAT_WEBHOOK_URL='https://oapi.dingtalk.com/robot/send?access_token'
else
  usage
  exit 1
fi

if [ _"${CHAT_WEBHOOK_KEY}" = _"" ]; then
  echo "please make sure CHAT_WEBHOOK_KEY has been exported as environment variable"
  usage
  exit 1
fi

if [ _"${URL}" = _"" ]; then
  URL="https://liumiaocn.blog.csdn.net/article/details/103740661"
fi

echo "## send message for : ${TYPE}"
if [ _"${TYPE}" = _"wechat" ]; then
  curl "${CHAT_WEBHOOK_URL}=${CHAT_WEBHOOK_KEY}" \
   -H "${CHAT_CONTENT_TYPE}" \
   -d '
   {
        "msgtype": "news",
        "news": {
           "articles" : [
              {
                  "title" : "'"${TITLE}"'",
                  "description" : "'"${CONTENT}"'",
                  "url" : "'"${URL}"'",
                  "picurl" : "'"${DEFAULT_PIC_URL}"'"
              }
           ]
        }
   }'
elif [ _"${TYPE}" = _"dingtalk" ]; then
  curl "${CHAT_WEBHOOK_URL}=${CHAT_WEBHOOK_KEY}" \
   -H "${CHAT_CONTENT_TYPE}" \
   -d '
   {
    "msgtype": "link", 
    "link": {
        "text": "'"${CONTENT}${DINGTALK_DEFAULT_WORDS}"'", 
        "title": "'"${TITLE}"'", 
        "picUrl": "'"${DEFAULT_PIC_URL}"'", 
        "messageUrl": "'"${URL}"'"
    }
   }'
else
  usage
  exit 1
fi
liumiaocn:chatops liumiao$ 

使用方法说明

首先设定环境变量CHAT_WEBHOOK_KEY,执行命令如下

export CHAT_WEBHOOK_KEY=钉钉机器人或者企业微信机器人的token信息

使用示例:钉钉

liumiaocn:chatops liumiao$ sh send_message.sh dingtalk "Greetings from Liumiao" "Nice 2 c u. Here comes a lot of words..."
## send message for : dingtalk
{"errcode":0,"errmsg":"ok"}liumiaocn:chatops liumiao$

结果确认
在这里插入图片描述

使用示例:企业微信

liumiaocn:chatops liumiao$ sh send_message.sh wechat "Greetings from Liumiao" "Nice 2 c u. Here comes a lot of words..."
## send message for : wechat
{"errcode":0,"errmsg":"ok"}liumiaocn:chatops liumiao$ 

结果确认
在这里插入图片描述
示例脚本还可以在如下位置获取:

  • https://github.com/liumiaocn/easypack/blob/master/chatops/send_message.sh
发布了1002 篇原创文章 · 获赞 1287 · 访问量 396万+

猜你喜欢

转载自blog.csdn.net/liumiaocn/article/details/103753450