当前位置:   article > 正文

7. 飞书机器人发送交互式信息_飞书交互式机器人卡片

飞书交互式机器人卡片

前面介绍过一个使用飞书机器人发送简单文本消息的例子,属于飞书机器人推送消息入门,实际工作中发简单消息的场景相对是比较少的,一般都是以交互式的卡片方式发送消息,卡片式能承载更多的信息,例如图片、Markdown、按钮等等。

交互式消息与文本消息代码不同之处就在于Send方法的参数Message(接口)的不同,对于文本消息Message是如下结构

type TextMessage struct {
	MsgType MsgType `json:"msg_type"`
	Content Content `json:"content"`
}

type Content struct {
	Text string `json:"text"`
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

而对于交互式的消息Message结构如下

type InteractiveMessage struct {
	MsgType MsgType `json:"msg_type"`
	Card    string  `json:"card"`
}
  • 1
  • 2
  • 3
  • 4

其中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
推荐阅读
相关标签