如何发送slack卡片消息

卡片消息是挺常见的一种格式,比如QQ卡牌用的是XML格式。

我们今天介绍一下slack的卡片格式,至于slack是啥,用谷歌搜会发现是一个软件名称,但用用其他的发现slack的这一套标准还是很多人用的,而且很多的开源软件都支持通过slack来发送消息。而slack被很多公司当作内部通讯工具来用,这样可以少交一部分钱。

所以我们今天要说的是,slack对接接口,并不会对该软件深入了解

一、【什么是slack】

Slack是一款面向团队的协作和通信平台,主要功能包括即时消息、文件共享、语音和视频通话、以及集成众多第三方应用和服务。Slack的核心特点是频道(channels),用户可以在不同的频道中讨论不同的话题。此外,Slack还支持私聊(DM)、群组聊天、以及高级搜索功能,帮助团队高效沟通和协作。Slack还提供丰富的API,允许开发者创建自定义的机器人和应用,进一步增强其功能。

官网:Slack 是你的工作效率管理平台 | Slack

二、【什么是卡片消息】

卡片消息(Card Message)是一种以结构化方式显示信息的消息类型,通常用于即时通讯平台如Slack、QQ、微信等。卡片消息可以包含文本、图像、按钮、链接等元素,使信息更易于阅读和交互。它们常用于通知、警报、任务更新等场景,帮助用户快速获取关键信息和进行相关操作。

下图就是一个卡片消息,不过qq卡牌是通过xml发送的,我们今天的slack卡片使用json发送

我们今天说一下mattermost的slack标准的attachment卡片如何制作,也就是类似下图这样

 三、【卡片消息能做什么】

卡片消息可以扩展聊天功能,除了插入美观的外部链接、图表之外。笔者认为他最大的作用是可以和后端服务器通信,这样我们就可以把一个卡片放入聊天群中,通过聊天群的卡片按钮来做一些简单的操作。

比如下图这个卡片消息,我们完全可以将其按钮功能改为继续执行一些动作或发送一些信息。

四、【编写我们自己的slack卡片】

卡片本质是一串JSON字符串,我们通过改一改参数,来达到自己的目的。代码如下,将url改为slack服务器的ip或者url即可

import json
 
# Mattermost attachments示例
attachments = [
    {
        "fallback": "This is a fallback text if the attachment cannot be displayed.",  # 当附件无法显示时的备用文本
        "color": "#FF8000",  # 附件左侧的颜色条,通常用来表示重要性或类别
        "pretext": "This is optional pretext that appears above the attachment.",  # 可选的前文本,显示在附件上方
        "author_name": "Author Name",  # 作者名称
        "author_link": "http://author.url",  # 作者链接
        "author_icon": "http://path.to/author/icon.png",  # 作者图标
        "title": "Attachment Title",  # 附件标题
        "title_link": "http://title.link",  # 标题链接
        "text": "This is the main text of the attachment.",  # 附件主要文本
        "fields": [  # 附件中的字段列表
            {
                "title": "Field1",  # 字段标题
                "value": "Value1",  # 字段值
                "short": True  # 短字段,是否在同一行显示多个字段
            },
            {
                "title": "Field2",  # 另一个字段标题
                "value": "Value2",  # 另一个字段值
                "short": True  # 仍然是短字段
            }
        ],
        "image_url": "http://path.to/image.png",  # 附件中的图片URL
        "thumb_url": "http://path.to/thumb.png",  # 附件中的缩略图URL
        "footer": "Footer text",  # 附件的页脚文本
        "footer_icon": "http://path.to/footer/icon.png",  # 页脚图标
        "ts": 123456789,  # 时间戳,通常用于显示附件的时间
        "actions": [  # 附件中的操作按钮
            {
                "name": "button",  # 按钮名称
                "integration": {  # 按钮的集成信息
                    "url": "http://yourserver.com/yourendpoint",  # 按钮触发的URL
                    "context": {
                        "action": "do_something"  # 按钮触发时的上下文信息
                    }
                },
                "type": "button",  # 按钮类型
                "text": "Button Text",  # 按钮文本
                "style": "primary"  # 按钮样式,可以是"default", "primary", "danger"
            },
            {
                "name": "menu",  # 菜单名称
                "integration": {  # 菜单的集成信息
                    "url": "http://yourserver.com/yourendpoint",  # 菜单触发的URL
                    "context": {
                        "action": "select_option"  # 菜单触发时的上下文信息
                    }
                },
                "type": "select",  # 菜单类型
                "options": [  # 菜单选项列表
                    {
                        "text": "Option 1",  # 选项文本
                        "value": "value1"  # 选项值
                    },
                    {
                        "text": "Option 2",  # 另一个选项文本
                        "value": "value2"  # 另一个选项值
                    }
                ]
            }
        ]
    }
]
 
# 将attachments对象转换为JSON格式,准备发送到Mattermost
attachments_json = json.dumps(attachments, indent=4)
print(attachments_json)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值