茂名公司网站设计,easyui做网站,黄骅招聘网最新招工信息,dedecms做图库网站飞书开发学习笔记(七)-添加机器人及发送webhook消息
一.添加飞书机器人
1.1 添加飞书机器人过程
在群的右上角点击折叠按键…选择 设置 群机器人中选择 添加机器人 选择自定义机器人#xff0c;通过webhook发送消息 弹出的信息中有webhook地址#xff0c;选择复制。 安…飞书开发学习笔记(七)-添加机器人及发送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消息
简单格式只有文本
{msg_type:text,content:{text:测试简单信息}}富文本格式支持
{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/XXXXheaders {
Content-type: application/json,
charset:utf-8
}msg_encodejson.dumps(msg,ensure_asciiTrue).encode(utf-8)
reponserequests.post(urlwebhook_url,datamsg_encode,headersheaders)
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), digestmodhashlib.sha256).digest()# 对结果进行base64处理sign base64.b64encode(hmac_code).decode(utf-8)return sign二.消息卡片搭建工具
2.1 了解消息卡片搭建工具
消息卡片搭建工具 是飞书的卡片消息格式制作工具,即自定义的消息模板可以为飞书开发提供丰富的消息格式。 以下为示例格式
2.2 卡片的超文本格式定义##
elements为卡片的内容 1.第一部分卡片文字 tag为markdown内容Content中文字常用的格式如下MarkDown格式
加粗 **张三** 张三斜体 *斜体* 斜体斜体加粗 ***张三*** 张三删除 ~~张三~~ 张三颜色 font colorred 张三font 张三链接 [张三](https://www.feishu.cn) 张三
第二部分为图片alt为图片提示migkey为图片索引定位到拖动上传的图片第三部分为按钮在actions中定义了按钮文字content以及按钮类型primary以及跳转地址url第四部分为标题header定义了卡片标题title和模板template
{config: {wide_screen_mode: true},elements: [{tag: markdown,content: 请单件文档查看昨天讨论的方案相关飞书文档注意作者为 font colorred **张三** 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消息就完成了。