飞书开发学习笔记(七)-添加机器人及发送webhook消息

飞书开发学习笔记(七)-添加机器人及发送webhook消息

一.添加飞书机器人

1.1 添加飞书机器人过程

在群的右上角点击折叠按键…选择 设置
在这里插入图片描述
群机器人中选择 添加机器人
在这里插入图片描述
选择自定义机器人,通过webhook发送消息
在这里插入图片描述
弹出的信息中有webhook地址,选择复制。
安全设置后续可以设置,比如将信任的IP地址加入IP白名单。
选择仅群主和添加者可以编辑移除机器人。
在这里插入图片描述
至此,群机器人添加成功。

1.2 利用webhook使用群机器人发送消息

机器人概述:机器人概述
发送复杂信息可使用消息卡片,在后续有详细说明,此处只发送简单信息。
简单信息格式

{"msg_type":"text","content":{"text":"request example"}}

windows使用cmd命令行发送:

curl -X POST -H "Content-Type: application/json" -d "{\"msg_type\":\"text\",\"content\":{\"text\":\"request example\"}}" https://open.feishu.cn/open-apis/bot/v2/hook/XXXXXXXXXXXXX

报错了,因此先要安装curl
在这里插入图片描述
下载curl,下载地址 https://curl.se/download.html
安装好以后,切换到curl命令目录 重新运行

curl -X POST -H "Content-Type: application/json" -d "{\"msg_type\":\"text\",\"content\":{\"text\":\"request example\"}}" https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxxx

群里收到了机器人发来的消息
在这里插入图片描述
这只是简单信息,如果复杂一点,则需使用消息卡片搭建工具发送卡片信息。

1.3 python发送webhook消息

  1. 简单格式,只有文本
{"msg_type":"text","content":{"text":"测试简单信息"}}
  1. 富文本格式,支持
{"msg_type": "post","content": {"post": {"zh_cn": {"title": "富文本信息","content": [[{ "tag": "text", "text": "富文本信息: "},{ "tag": "a", "text": "请查看","href": "http://www.example.com/"},{"tag": "at","user_id": "ou_18eac8********17ad4f02e8bbbb"}] ]}}} 
}

写个简单的Python程序也可以发送webhook消息,注意消息是要json编码的

import requests
import jsonmsg = {
"msg_type": "text",
"content": {"text": "你好"}
}webhook_url=" https://open.feishu.cn/open-apis/bot/v2/hook/XXXX"headers = {
"Content-type": "application/json",
"charset":"utf-8"
}msg_encode=json.dumps(msg,ensure_ascii=True).encode("utf-8")
reponse=requests.post(url=webhook_url,data=msg_encode,headers=headers)
print(reponse)

发送效果:
简单信息
在这里插入图片描述
富文本信息
在这里插入图片描述

1.3 安全设置

安全设置中有三个选项。

如果勾选自定义关键词,最多可以同时设置 10 个关键词,多个关键词之间使用回车键间隔。设置后,只有包含至少一个关键词的消息才会被成功发送。
例如,关键词设置了“应用报警”与“项目更新”,则请求 webhook 的信息中至少需要包含“应用报警”或“项目更新”其中一个关键词。

如果勾选设置 IP 白名单,支持添加 IP 地址或地址段,最多可设置 10 个,使用回车键间隔。支持段输入,例如 123.12.1.* 或 123.1.1.1/24。设置后,机器人 webhook 地址只处理来自 IP 白名单范围内的请求。

如果勾选 签名校验,则系统会提供一个密钥,需要利用python等程序制作一个加密算法,生成加密后字符串。
所校验的签名需要通过时间戳与秘钥进行算法加密,即将timestamp + “\n” + 密钥当做签名字符串,使用 HmacSHA256 算法计算签名,再进行 Base64 编码。其中,timestamp是指距当前时间不超过 1 小时(3600 秒)的时间戳,时间单位:s。例如,1599360473。
在这里插入图片描述
python的加密算法,返回sign即为加密后消息

import hashlib
import base64
import hmacdef gen_sign(timestamp, secret):# 拼接timestamp和secretstring_to_sign = '{}\n{}'.format(timestamp, secret)hmac_code = hmac.new(string_to_sign.encode("utf-8"), digestmod=hashlib.sha256).digest()# 对结果进行base64处理sign = base64.b64encode(hmac_code).decode('utf-8')return sign

二.消息卡片搭建工具

2.1 了解消息卡片搭建工具

消息卡片搭建工具
是飞书的卡片消息格式制作工具,即自定义的消息模板,可以为飞书开发提供丰富的消息格式。
以下为示例格式:
在这里插入图片描述

2.2 卡片的超文本格式定义##

elements为卡片的内容:
1.第一部分卡片文字, tag为markdown,内容Content中,文字常用的格式如下(MarkDown格式)

  • 加粗 **张三** 张三
  • 斜体 *斜体* 斜体
  • 斜体加粗 ***张三*** 张三
  • 删除 ~~张三~~ 张三
  • 颜色 <font color=red> 张三<font> 张三
  • 链接 [张三](https://www.feishu.cn) 张三
  1. 第二部分为图片,alt为图片提示,migkey为图片索引,定位到拖动上传的图片
  2. 第三部分为按钮,在actions中定义了按钮文字content,以及按钮类型primary以及跳转地址url
  3. 第四部分为标题header,定义了卡片标题title和模板template
    在这里插入图片描述
{"config": {"wide_screen_mode": true},"elements": [{"tag": "markdown","content": "请单件文档查看昨天讨论的方案相关飞书文档,注意作者为 <font color=red> **张三** <font> 版本为 \n*002* ,版本 ~~001~~ 已经删除。文件地址是 [https://www.feishu.cn](https://www.feishu.cn),打开次数:${doc_read_num}次""},{"alt": {"content": "图片","tag": "plain_text"},"img_key": "img_v3_025c41g","tag": "img"},{"tag": "action","actions": [{"tag": "button","text": {"tag": "plain_text","content": "打开文档链接"},"type": "primary","url": "https://nio.feishu.cn/docx/UM8c1oNxnkh"}]}],"header": {"template": "blue","title": {"content": "查看讨论的飞书文档","tag": "plain_text"}}
}

在这里插入图片描述
定义完成以后,可以利用"向我发送预览",查看效果。
开发者小助手会将消息推送给作者。
在这里插入图片描述

2.3 利用Python程序发送webhook卡片

这里的卡片必须按照下列格式才能用webhook发送。

{"msg_type": "interactive","card": {"elements": [{"tag": "div","text": {"content": "**西湖**,位于浙江省杭州市西湖区龙井路1号,杭州市区西部,景区总面积49平方千米,汇水面积为21.22平方千米,湖面面积为6.38平方千米。","tag": "lark_md"}}, {"actions": [{"tag": "button","text": {"content": "更多景点介绍 :玫瑰:","tag": "lark_md"},"url": "https://www.example.com","type": "default","value": {}}],"tag": "action"}],"header": {"title": {"content": "今日旅游推荐","tag": "plain_text"}}}
}

再次调用上面的Python程序,将msg改为卡片内容发送:
得到卡片消息效果:
在这里插入图片描述
以上,利用python通过机器人发送webhook消息就完成了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/146216.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电子学会C/C++编程等级考试2021年09月(一级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:数字判断 输入一个字符,如何输入的字符是数字,输出yes,否则输出no 输入 一个字符 输出 如何输入的字符是数字,输出yes,否则输出no 样例1输入 样例1输入 5样例1输出 yes样例2输入 A 样例2输出 …

MySQL中全文索引和普通索引的区别

MySQL中的全文索引&#xff08;Full-Text Index&#xff09;和普通索引&#xff08;比如B-Tree索引&#xff09;是为了提高查询效率而设计的&#xff0c;但它们适用于不同的场景和查询类型。 普通索引&#xff08;如B-Tree索引&#xff09; 适用场景&#xff1a;普通索引适用于…

暖阳脚本_ 定制企业软件开发的4个趋势:AI、RPA、云应用、边缘计算

根据 Statista 的统计数据显示&#xff0c;企业级软件市场在全球范围内占据了领先地位&#xff0c;预测到2028年&#xff0c;市场规模将接近3760亿美元。企业应用软件市场的稳健增长&#xff0c;甚至在经济不景气的时候也能持续&#xff0c;这充分表明软件解决方案对于提升企业…

Git新建分支

修改代码之Git策略思考&#xff1a; 有三种办法&#xff1a; 需要在主分支上新建一个分支&#xff0c;不合并新建版本。其实也是先新建一个分支&#xff0c;然后合并到主分支&#xff0c;再删除分支。直接新建远程仓库。 考虑&#xff0c;3&#xff09;最浪费&#xff0c;其…

直接插入排序

一.介绍. 其基本思想为数据元素被已经放入一个已经排好的有序数组中&#xff0c;现插入一个元素进入该数组&#xff0c;按顺序&#xff08;即大小关系&#xff09;放进适当位置&#xff0c;并且其后面的元素都向后移动移位。 如图&#xff1a; 对于上述问题&#xff1a; 代码…

【Spring】使用三方包进行数据源对象(数据库)管理

在这里使用alibaba的druid来连接数据库&#xff0c;然后再Spring Config下配置数据库 目录 第一步&#xff1a;在pom.xml中导入坐标第二步&#xff1a;在bean中配置连接注 第一步&#xff1a;在pom.xml中导入坐标 在dependencies下写&#xff1a; <dependency><grou…

汇编-间接寻址(处理数组)

直接寻址很少用于数组处理&#xff0c;因为用常数偏移量来寻址多个数组元素时&#xff0c;直接寻址并不实用。取而代之的是使用寄存器作为指针(称为间接寻址(indirect addressing) ) 并控制该寄存器的值。如果一个操作数使用的是间接寻址&#xff0c; 就称之为间接操作数(indie…

GB28181学习(十六)——基于jrtplib实现tcp被动和主动收流

前言 GB/T28181-2022实时流的传输方式介绍&#xff1a;https://blog.csdn.net/www_dong/article/details/134255185 tcp passive收流 流程图 注意&#xff1a; m字段指定传输方式为TCP/RTP/AVP&#xff1b;sdp信息中增加"asetup:passive"&#xff1b;SIP服务器启…

AWS实战(一)-创建S3 存储桶

1&#xff09;登录AWS账号&#xff0c;选择服务—>存储—>S3。 2&#xff09;查看存储桶列表 3&#xff09;点击"创建存储桶"创建bucket。 4&#xff09;设置跨域 点击编辑&#xff0c;修改跨域设置即可。

关于Ultra HDR Image的那些事

一、什么是Ultra HDR Image 2023年10月初&#xff0c;google正式发布了Android 14。该版本中引入了一个新的功能Ultra HDR Image&#xff0c;被誉为”图像技术的未来”。之前Android版本各手机厂商或许有自己的HDR图片技术&#xff0c;本文这里重点分析下Android14上google的实…

在test用户下创建test1表并插入数据,然后将tes1t表的查询权限授予test2用户

文章目录 1、以 test 用户登录2、创建 test1 表3、插入数据4、查看数据5、授予权限创建用户test2以 test 用户登录并授予权限&#xff1a;使用test2用户登录查询&#xff0c;测试结果 1、以 test 用户登录 首先&#xff0c;您需要以 test 用户登录到数据库 sqlplus test/1232…

腾讯云4核8G服务器配置价格表,轻量和CVM标准型S5实例

腾讯云4核8G服务器S5和轻量应用服务器优惠价格表&#xff0c;轻量应用服务器和CVM云服务器均有活动&#xff0c;云服务器CVM标准型S5实例4核8G配置价格15个月1437.3元&#xff0c;5年6490.44元&#xff0c;轻量应用服务器4核8G12M带宽一年446元、529元15个月&#xff0c;腾讯云…

Linux下向Github仓库推送

文章目录 Git 与 Github安装git在github下创建项目下载项目到本地Git三板斧第一板斧 git add第二板斧 git commit第三板斧 git push Git 与 Github Git是目前从开发人员到设计人员的版本控制技术。gitee是国内社交代码托管平台。这是一个你可以玩和实验的地方。在这里你可以找…

注解方式优雅的实现 Redisson 分布式锁

1前言 日常开发中&#xff0c;难免遇到一些并发的场景&#xff0c;为了保证接口执行的一致性&#xff0c;通常采用加锁的方式&#xff0c;因为服务是分布式部署模式&#xff0c;本地锁Reentrantlock和Synchnorized这些就先放到一边了&#xff0c;Redis的setnx锁存在无法抱保证…

创建具有负载平衡和集群的可扩展 Node.js 应用程序

创建具有负载平衡和集群的可扩展 Node.js 应用程序 负载平衡是提高应用程序性能、可扩展性和可用性的一项重要技术。当客户端向负载均衡器发出请求时&#xff0c;负载均衡器根据预定义的规则将请求分发到不同的实例。 可以使用cluster集群模块或 PM2 等工具根据负载均衡器的流…

[PHP]关联和操作MySQL数据库然后将数据库部署到ECS

在Mac电脑上使用VS Code进行PHP开发并关联操作MySQL数据库&#xff0c;然后将数据库部署到ECS。 1.安装PHP和MySQL 确保你的Mac上已经安装了PHP和MySQL。你可以使用Homebrew来安装它们&#xff1a; $ brew install php $ brew install mysql 安装mysql完成后记住这一句: …

城市网吧视频智能监控方案,实现视频远程集中监控

网吧环境较为复杂&#xff0c;电脑设备众多且人员流动性大&#xff0c;极易发生人员或消防事故&#xff0c;亟需改变&#xff0c;TSINGSEE青犀AI智能网吧视频监管方案可以帮助实现对网吧环境和用户活动的实时监控和管理。 1、视频监控系统 在网吧内部布置高清摄像头&#xff0…

反转字符串中的单词

给你一个字符串 s &#xff0c;请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意&#xff1a;输入字符串 s中可能会存在前导空格、尾随空格…

笔记54:门控循环单元 GRU

本地笔记地址&#xff1a;D:\work_file\DeepLearning_Learning\03_个人笔记\3.循环神经网络\第9章&#xff1a;动手学深度学习~现代循环神经网络 a a a a a a a

Bulk RNA-seq上下游分析

Bulk-RNA-seq上下游分析还是相对简单的&#xff0c;这次我以mouse为例&#xff0c;进行Bulk-RNA-seq上下游分析&#xff0c;并进行对应的图片绘制。 上游分析 1.软件准备 #安装所需软件 sudo apt install fastqc sudo apt install hisat2 sudo apt install cutadapt sudo ap…