

Golang发送钉钉机器人消息
source link: https://studygolang.com/articles/35243
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Golang发送钉钉机器人消息
blinkbean · 3天之前 · 193 次点击 · 预计阅读时间 4 分钟 · 大约8小时之前 开始浏览作为新生代农民工,日常搬砖时间分配基本分为写Bug、Debug、Battle、摸鱼、喝水、上厕所...。除了这些,作为业务一线的民工们还会偶尔会收到产品、运营姐姐妹妹的数据统计需求,她的确要这个数有用,并且只有你有,有每天都要的,有每周要的,有不定期要的。可能也就几个SQL的事,做后台不值得,不做后台呢也不值得。一块砖搬一次两次可以,再多可就不行了,不然配不上==新生代==这三个字。
那有没有一个实现简单又使用方便的工具呢,没有?那想办法搞一个。
无技术门槛
- 一定自主性
- 权限控制(针对写类型的操作)
- 历史记录(查看查找和操作记录)
看起来要实现一个方便的工具可真是没有那么容易。发现钉钉有群机器人这个功能后,真是过江遇渡船——赶巧了,稍加包装就能实现以上的所有需求。blinkbean/dingtalk
- 对话式消息交互
- 约定命令格式
- 参数通过命令的方式传递
- 可通过消息体内字段判断消息发送者身份
通过Http方式向机器人发多种类型的消息(blinkbean/dingtalk 查看详细介绍)
- Markdown
- ActionCard
- FeedCard
- 可通过@机器人的方式主动调用Http接口,==需开启Outgoing机制==
go get github.com/blinkbean/dingtalk
// key 创建钉钉机器人需要设置的关键词,默认为`.` func InitDingTalk(tokens []string, key string) *dingTalk // 加签方式创建钉钉机器人 // 加签机器人 access_token和secret一一对应,在创建机器人是获取 func InitDingTalkWithSecret(tokens string, secret string) *DingTalk
import "github.com/blinkbean/dingtalk" func main() { // 单个机器人有单位时间内消息条数的限制,有需要可以初始化多个token,随机发给其中一个机器人。 var dingToken = []string{"7bd675b664****dd6684fb1e0415"} cli := dingtalk.InitDingTalk(dingToken, ".") // 发个text类型消息 cli.SendTextMessage("content") }
一般消息类型
// 普通文本消息 SendTextMessage(content string, opt ...atOption) error // 链接消息 SendLinkMessage(title, text, picUrl, msgUrl string) error // markdown格式消息 SendMarkDownMessage(title, text string, opts ...atOption) error // 有序列表markdown消息 SendMarkDownMessageBySlice(title string, textList []string, opt ...atOption) error // Action类型消息 SendActionCardMessage(title, text string, opts ...actionCardOption) error // 批量发送Action类型消息 SendActionCardMessageBySlice(title string, textList []string, opts ...actionCardOption) error // Feed类型消息 SendFeedCardMessage(feedCard []FeedCardLinkModel) error // DTMD消息(点击链接发送交互内容) SendDTMDMessage(title string, dtmdMap *dingMap, opt ...atOption) error
OutGoing消息
随着各种类型工具都可以集成到钉钉机器人,管理和查找开始复杂,于是做成了注册的形式,
// 自定义方法 outgoingFunc := func(args []string) []byte { // do what you want to return NewTextMsg("hello").Marshaler() } // 自定义方法注册到handler // hello 关键词、outgoingFunc 主方法、2 参数个数、true 需要身份 RegisterCommand("hello", outgoingFunc, 2, true) // 启动http服务 http.Handle("/outgoing", &OutGoingHandler{}) _ = http.ListenAndServe(":8000", nil)
消息预览(通过命令快速获取用户信息)
了解更多
将钉钉机器人接口进行封装,可根据使用场景选择不同类型的消息类型。达到低开发成本的同时满足队友们的不同读写需求。
添加钉钉消息测试群:35451012,执行dingtalk_test.go测试方法可直接查看当前支持消息内容。
Recommend
-
117
在微信群里面,“刷屏”的行为是被谴责的。那如果小程硬是要做到“刷屏”的话,有什么办法吗?显然,靠快速打字是不现实的,用程序来实现才靠谱。本文介绍如何用程序发送消息到微信群。参考网页微信的功能,很自然的一个想法就是调用网页微信的接口来实现这个功能。那...
-
65
-
83
-
87
-
53
title: 自定义log4j2发送日志到Kafka tags: log4j2,kafka 为了给公司的大数据平台提供各项目组的日志,而又使各项目组在...
-
36
前言 最近在优化持续集成,之前使用 Python 写过钉钉机器人,不过随着项目往 golang 发展,于是想去掉 Python 的依赖。另外,想着如果后台服务有些重要的事项,可以通知到钉钉,也想着做个 go module 供项目使用。本来想直接 g...
-
16
钉钉机器人自动关联 GitHub 发送 approval prs摘要:用技术来解决 PM 枯燥的 approval pr 工作,本文将阐述如何自动化获取 GitHub Organization 下各个 repo 待 merge 的 pull requests 并通知相关人员,告别每日的手动操作。在日常工作中,你...
-
4
PowerShell小技巧:通过Powershell 发送消息给企业微信机器人 原创 在工作中经常会使用计划任务执行 Powershell 脚本,同时又需要基...
-
7
钉钉告警发送 2022-11-23 1 分钟阅读 #!/usr/bin/env python #coding:utf-8 #zabbix钉钉报警 import requests import json import sys import os import datetime #这里是自己创建的机器人的webhook webhoo...
-
3
Sorry, you have been blocked You are unable to access azhuge233.com Why have I been blocked? This website is...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK