在工作中,通过飞书机器人推送消息的需求还是挺常见的,例如,推送监控报警、创建文档、账单确认等。在该类场景下,我们可以在群组中添加自定义机器人,自定义机器人默认提供 webhook,通过服务端调用 webhook 地址,即可将外部系统的消息通知即时推送到群组中。自定义机器人也包含了 自定义关键词、IP 白名单 和 签名 三种维度的安全配置,便于控制 webhook 的调用范围。

在该例子中,主要实现一下通过签名的方式发送简单文本消息的飞书机器人。

ToKenSecretKey的获取:飞书文档

注意Token是https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxxxxxxxxxxx后那串xxxxxxxxxxxxxxxxx

在这里插入图片描述

SecretKey则在机器人 安全设置-签名校验在这里插入图片描述

注:在代码中,可以将TokenSecretKey作为常量存起来,但是有时候为了发送到不同的群,也可以使用flag方式通过参数传入。

package main

import (
	"flag"
	"fmt"

	"github.com/CatchZeng/feishu/pkg/feishu"
)

const (
	Token     = "052f427f-3f57-455a-XXXX-XXXXXXXXX"
	SecretKey = "aQkBeQyAgXXXXXXXXXX"
)

func main() {
	token := flag.String("token", "", "飞书机器人webhook token")
	secretKey := flag.String("secret_key", "", "飞书机器人-安全设置-签名秘钥")
	flag.Parse()

	client := feishu.NewClient(*token, *secretKey)
	// client := feishu.NewClient(Token, SecretKey)

	msg := feishu.NewTextMessage()
	msg.Content.Text = "hello world!"

	_, response, err := client.Send(msg)
	if err != nil {
		panic(any(err))
	}
	fmt.Println(response)

}

执行:go run main.go -token=052f427f-3f57-455a-XXXX-XXXXXXXXX" -secret_key="aQkBeQyAgXXXXXXXXXX"

在这里插入图片描述

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐