美文网首页敏捷开发与项目管理
golang 钉钉机器人Docker&命令行工具&module

golang 钉钉机器人Docker&命令行工具&module

作者: CatchZeng | 来源:发表于2020-02-23 12:27 被阅读0次

    前言

    最近在优化持续集成,之前使用 Python 写过钉钉机器人,不过随着项目往 golang 发展,于是想去掉 Python 的依赖。另外,想着如果后台服务有些重要的事项,可以通知到钉钉,也想着做个 go module 供项目使用。本来想直接 github 上找一个,结果搜索了老半天没看到一个符合的,于是,手撸了一个。

    DingTalk

    https://github.com/CatchZeng/dingtalk

    DingTalk(dingding) 是钉钉机器人的 go 实现。支持 Docker命令行模式,module 模式,支持加签安全设置,支持链式语法创建消息,支持文本、链接、Markdown、ActionCard、FeedCard 消息类型

    特性

    • 支持Docker

    • 支持module

    • 支持命令行模式

    • 支持加签

      sign
    • Text 消息

      text
    • Link 消息

      link
    • Markdown 消息

      markdown
    • ActionCard 消息

      ActionCard1 ActionCard2
    • FeedCard 消息

      ActionCard1

    安装

    Docker 安装

    docker pull catchzeng/dingtalk
    

    二进制安装

    releases 下载相应平台的二进制可执行文件,然后加入到 PATH 环境变量即可。

    go get 安装

    go get github.com/CatchZeng/dingtalk
    

    使用方法

    Docker

    docker run catchzeng/dingtalk dingtalk text -t 1c53e149ba5de6597cxxxxxx0e901fdxxxxxx80b8ac141e4a75afdc44c85ca4f -s SECb90923e19e58b466481e9e7b7a5bxxxxxx4531axxxxxxad3967fb29f0eae5c68 -c "docker test"
    

    作为 module

    package main
    
    import (
        "log"
    
        "github.com/CatchZeng/dingtalk/client"
        "github.com/CatchZeng/dingtalk/message"
    )
    
    func main() {
        dingTalk := client.DingTalk{
            AccessToken: "1c53e149ba5de6597cxxxxxx0e901fdxxxxxx80b8ac141e4a75afdc44c85ca4f",
            Secret:      "SECb90923e19e58b466481e9e7b7a5bxxxxxx4531axxxxxxad3967fb29f0eae5c68",
        }
    
        msg := message.NewTextMessage().SetContent("测试文本&at 某个人").SetAt([]string{"177010xxx60"}, false)
        dingTalk.Send(msg)
    }
    

    命令行工具

    Demo

    dingtalk text -t 1c53e149ba5de6597cxxxxxx0e901fdxxxxxx80b8ac141e4a75afdc44c85ca4f -s SECb90923e19e58b466481e9e7b7a5bxxxxxx4531axxxxxxad3967fb29f0eae5c68 -c "测试命令行 & at 某个人" -m "177010xxx60","177010xxx61"
    

    Help

    • dingtalk

      $ dingtalk -h
      dingtalk is a command line tool for DingTalk
      
      Usage:
        dingtalk [command]
      
      Available Commands:
        actionCard  send actionCard message with DingTalk robot
        feedCard    send feedCard message with DingTalk robot
        help        Help about any command
        link        send link message with DingTalk robot
        markdown    send markdown message with DingTalk robot
        text        send text message with DingTalk robot
        version     dingtalk version
      
      Flags:
        -m, --atMobiles strings   atMobiles
        -h, --help                help for dingtalk
        -a, --isAtAll             isAtAll
        -s, --secret string       secret
        -t, --token string        access_token
      
      Use "dingtalk [command] --help" for more information about a command.
      
    • text

      $ dingtalk text -h
      send text message with DingTalk robot
      
      Usage:
        dingtalk text [flags]
      
      Flags:
        -c, --content string   content
        -h, --help             help for text
      
      Global Flags:
        -m, --atMobiles strings       atMobiles
        -a, --isAtAll                 isAtAll
        -s, --secret string           secret
        -t, --token string            access_token
      
    • link

      $ dingtalk link -h
      send link message with DingTalk robot
      
      Usage:
        dingtalk link [flags]
      
      Flags:
        -h, --help                help for link
        -u, --messageURL string   messageURL
        -p, --picURL string       picURL
        -e, --text string         text
        -i, --title string        title
      
      Global Flags:
        -m, --atMobiles strings       atMobiles
        -a, --isAtAll                 isAtAll
        -s, --secret string           secret
        -t, --token string            access_token
      
    • markdown

      $ dingtalk markdown -h
      send markdown message with DingTalk robot
      
      Usage:
        dingtalk markdown [flags]
      
      Flags:
        -h, --help           help for markdown
        -e, --text string    text
        -i, --title string   title
      
      Global Flags:
        -m, --atMobiles strings       atMobiles
        -a, --isAtAll                 isAtAll
        -s, --secret string           secret
        -t, --token string            access_token
      
    • actionCard

      $ dingtalk actionCard -h
      send actionCard message with DingTalk robot
      
      Usage:
        dingtalk actionCard [flags]
      
      Flags:
        -c, --btnActionURLs strings   btnActionURLs
        -o, --btnOrientation string   btnOrientation
        -b, --btnTitles strings       btnTitles
        -h, --help                    help for actionCard
        -d, --hideAvatar string       hideAvatar
        -n, --singleTitle string      singleTitle
        -u, --singleURL string        singleURL
        -e, --text string             text
        -i, --title string            title
      
      Global Flags:
        -m, --atMobiles strings   atMobiles
        -a, --isAtAll             isAtAll
        -s, --secret string       secret
        -t, --token string        access_token
      
    • feedCard

      dingtalk feedCard -h
      send feedCard message with DingTalk robot
      
      Usage:
        dingtalk feedCard [flags]
      
      Flags:
        -h, --help                  help for feedCard
        -u, --messageURLs strings   messageURLs
        -p, --picURLs strings       picURLs
        -i, --titles strings        titles
      
      Global Flags:
        -m, --atMobiles strings   atMobiles
        -a, --isAtAll             isAtAll
        -s, --secret string       secret
        -t, --token string        access_token
      

    相关文章

      网友评论

        本文标题:golang 钉钉机器人Docker&命令行工具&module

        本文链接:https://www.haomeiwen.com/subject/ulfjqhtx.html