赞
踩
前面介绍过一个使用飞书机器人发送简单文本消息的例子,属于飞书机器人推送消息入门,实际工作中发简单消息的场景相对是比较少的,一般都是以交互式的卡片方式发送消息,卡片式能承载更多的信息,例如图片、Markdown
、按钮等等。
交互式消息与文本消息代码不同之处就在于Send
方法的参数Message(接口)
的不同,对于文本消息Message
是如下结构
type TextMessage struct {
MsgType MsgType `json:"msg_type"`
Content Content `json:"content"`
}
type Content struct {
Text string `json:"text"`
}
而对于交互式的消息Message
结构如下
type InteractiveMessage struct {
MsgType MsgType `json:"msg_type"`
Card string `json:"card"`
}
其中Card
支持传递json字符串
,示例如下
package main
import (
"flag"
"fmt"
"github.com/CatchZeng/feishu/pkg/feishu"
)
func main() {
token := flag.String("token", "", "飞书机器人webhook token")
secretKey := flag.String("secret_key", "", "飞书机器人-安全设置-签名秘钥")
flag.Parse()
client := feishu.NewClient(*token, *secretKey)
// sendMsg(client)
sendCard(client)
}
func sendMsg(client *feishu.Client) {
msg := feishu.NewTextMessage()
msg.Content.Text = "hello world"
_, response, err := client.Send(msg)
if err != nil {
panic(any(err))
}
fmt.Println(response)
}
func sendCard(client *feishu.Client) {
// 相对于文本消息的主要改动点
msg := feishu.NewInteractiveMessage()
// Card为一个JSON字符串
msg.Card = "{\n \"elements\": [\n {\n \"tag\": \"column_set\",\n \"flex_mode\": \"none\",\n \"background_style\": \"grey\",\n \"columns\": [\n {\n \"tag\": \"column\",\n \"width\": \"weighted\",\n \"weight\": 1,\n \"vertical_align\": \"top\",\n \"elements\": [\n {\n \"tag\": \"div\",\n \"text\": {\n \"content\": \"这是一段普通文本声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/385791?site
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。