Python实现飞书机器人定时发送文本、图片等群消息

工作中会经常遇到监控告警相关问题,监控和告警的目的是要在事中及时发现问题并定位系统问题,那么当系统或平台出现问题了,如何及时暴露这些问题给对应的项目开发人员呢?

本文记录了在Python项目中利用飞书的自定义机器人webhook向飞书群推送文本及图片消息~

飞书机器人自动发送群消息

  • 1. 飞书群添加飞书机器人
  • 2. 通过webhook发送群消息
    • 2.1 发送文本消息
    • 2.2 发送富文本消息
    • 2.3 发送图片消息

1. 飞书群添加飞书机器人

  • 飞书群-设置-群机器人-添加机器人-自定义机器人;

  • 复制webhook地址,webhook地址就是用来发送消息的接口;

2. 通过webhook发送群消息

参考:飞书官方开发文档

2.1 发送文本消息

注:如想要@具体成员,则需要获取对方的user_id,可参考:获取user_id

class FeishuTalk:# 机器人webhookchatGPT_url = 'https://open.feishu.cn/open-apis/bot/v2/hook/XXX'# 发送文本消息def sendTextmessage(self, content):url = self.chatGPT_urlheaders = {"Content-Type": "application/json; charset=utf-8",}payload_message = {"msg_type": "text","content": {# @ 单个用户 <at user_id="ou_xxx">名字</at>"text": content + "<at user_id=\"bf888888\">test</at>"  # @ 所有人 <at user_id="all">所有人</at># "text": content + "<at user_id=\"all\">test</at>"}}response = requests.post(url=url, data=json.dumps(payload_message), headers=headers)return response.json# 执行发送文本消息content = "生活不止眼前的苟且,还有诗和远方!"FeishuTalk().sendTextmessage(content)

在这里插入图片描述

2.2 发送富文本消息

  • 富文本可以在一条消息中同时支持文字、At、图片、超链接等元素,可参考:富文本消息

  • 对于需要换行展示的消息,可通过发送 富文本消息 进行实现,比如发送一个榜单消息

    # 发送富文本消息def sendFuTextmessage(self, content):url = self.chatGPT_urlheaders = {"Content-Type": "application/json; charset=utf-8",}payload_message = {"msg_type": "post","content": {"post": {"zh_cn": {"title": "微博头条热榜","content": content}}}}response = requests.post(url=url, data=json.dumps(payload_message), headers=headers)return response# 微博头条榜单def getHotBand(self):url = "https://www.weibo.com/ajax/statuses/hot_band"headers = {"cookie": "XSRF-TOKEN=iuIb9M_gQ8D4FjMwUthqcink; SUB=_2AkMUpJdaf8NxqwJRmPEVz2Pib4V_zwrEieKi-GaBJRMxHRl-yT92qhALtRB6PyS5tbPLRbsCo0gfSwhlb8PLq3CnqnuA; SUBP=0033WrSXqPxfM72-Ws9jqgMF55529P9D9WFyRDSrne6a4e.bkQHJzd-.; WBPSESS=IawIaCISeX-46VmeRocrJ40RrQZ7YTNxKt6pB9xuTQ-WP-uhwIvsoHpBEQfU2CGlyGf32loDQLI6ykRbGvzNf_mvmCuvfYLwUPDbYHJizUdUKfKplkCi6sPas7wrz6ACVGt8HOr-w8hjNGpZtkeUtLcl0-BFnXMuSPDMToH7QlI=","x-xsrf-token": "iuIb9M_gQ8D4FjMwUthqcink"}response = requests.get(url=url, headers=headers).json()bandList_all = []index = 1for item in response['data']['band_list']:bandDict = {"tag": "text"}bandList = []bandDict.update({"text": "No." + str(index) + ":" + item['word']})bandList.append(bandDict)index += 1bandList_all.append(bandList)return bandList_all# 发送富文本消息
content = FeishuTalk().getHotBand()
FeishuTalk().sendFuTextmessage(content)
# 注:富文本消息的content消息体格式如下   
[[{"tag": "text","text": "第一行 :"}],[{"tag": "text","text": "第二行:"}]
]

在这里插入图片描述

2.3 发送图片消息

发送图片要分为两步:第一步通过上传图片接口获取image_key,第二步将上传的图片发送到群。可参考:发送图片

  1. 登录【飞书开放平台-开发者后台】,查看app_id与app_secret,通过接口拿到 tenant_access_token,供上传图片接口使用。可参考:自建应用获取 tenant_access_token;
    在这里插入图片描述
    注:需要开通上传图片权限,入口:开发者后台-权限管理-检索【获取与上传图片或文件资源】;
    在这里插入图片描述

  2. 上传图片获取 image_key ,可参考:上传图片获取image_key

class FeishuTalk:# 应用凭证,获取方式查看上面的步骤app_id = "cli_a37c6ffbdxxxxxxx"app_secret = "mLstZkv0C4d1sxxxxxxxxxxxxxxx"# 机器人webhookchatGPT_url = 'https://open.feishu.cn/open-apis/bot/v2/hook/XXX'def __init__(self):# 获取tenant_access_token,供上传图片接口使用url = "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal"headers = {"Content-Type": "application/json; charset=utf-8",}payload_data = {"app_id": self.app_id,"app_secret": self.app_secret}response = requests.post(url=url, data=json.dumps(payload_data), headers=headers).json()self.token = response['tenant_access_token']# 发送图片def uploadImage(self, picturePath):image_key_headers = {'Authorization': 'Bearer ' + self.token,}# 上传图片获取image_keyget_image_key_url = "https://open.feishu.cn/open-apis/im/v1/images"form = {'image_type': 'message','image': (open(picturePath, 'rb'))}  # 需要替换具体的pathmulti_form = MultipartEncoder(form)image_key_headers['Content-Type'] = multi_form.content_typeresponse = requests.request("POST", get_image_key_url, headers=image_key_headers, data=multi_form).json()# print(response.headers['X-Tt-Logid'])  # for debug or oncallimage_key = response['data']['image_key']print("image_key:", image_key)# 发送图片url = self.chatGPT_urlform = {'msg_type': 'image','content':{"image_key": image_key}}headers = {'Authorization': 'Bearer ' + self.token}response = requests.post(url=url, data=json.dumps(form), headers=headers)return response.json()# 发送图片消息
picturePath = "E:\PythonCodes\FeishuTalk\picLibs\1.jpg"
FeishuTalk().uploadImage(picturePath)

在这里插入图片描述

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

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

相关文章

这都行?Python 自动发微博

最近在研究用 Python 来制作各个类别的机器人&#xff0c;今天先来分享一个自动发布新浪微博的机器人。 基本思路 其实要实现一个简单的自动发布微博机器人还是不难的&#xff0c;只需要每天按时找好要发布的素材&#xff08;一般就是爬虫了&#xff09;&#xff0c;然后再通过…

用python自动发微博

……刚刚全部写完了点发布……结果什么都没保存……内心好忧伤。 终极目标是用raspberry pi camera 捕捉画面&#xff0c;处理图像识别图中有我家主子&#xff08;猫&#xff09;&#xff0c; 然后自动capture图像&#xff0c;发微博。raspberry pi明天才能送到&#xff0c;所…

Python自动发送消息小脚本,可用于各种聊天框~

作者主页&#xff1a;爱笑的男孩。的博客_CSDN博客-深度学习,YOLO,活动领域博主爱笑的男孩。擅长深度学习,YOLO,活动,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typecollect 个…

python微信自动发送信息脚本

微信自动发送信息脚本 导读&#xff1a;此脚本的原理是控制电脑上的微信客户端&#xff0c;实现用脚本定位窗口(隐藏或者被覆盖也行)&#xff0c;然后用脚本把内容复制到剪切版中&#xff0c;用脚本在定位的窗口中实现ctrlv,模拟enter发送 需要用的的python模块&#xff1a; py…

python之自动发送微信消息

这篇文章主要是总结最近写自动发送微信消息的python代码时所接触的两个库——pyautogui和pyperclip的用法。 在网上找了很多能实现发送微信消息的方法&#xff0c;其中有使用itchat和wxpy库来实现的&#xff0c;尝试过后发现这两个库都需要通过登录网页微信才能发送&#xff0…

【奇巧淫技】python 助你每天早上八点自动发送天气预报邮件到QQ邮箱

此博客仅为我业余记录文章所用&#xff0c;发布到此&#xff0c;仅供网友阅读参考&#xff0c;如有侵权&#xff0c;请通知我&#xff0c;我会删掉。 补充 有不少杠精小婊贝留言说本文章没有用&#xff0c;因为天气预报直接打开手机就可以收到了&#xff0c;为何要多此一举发送…

Python实现公众号每日自动发早/晚安消息(详细教程)

公众号每日自动发早/晚安消息&#xff08;python实现&#xff09; 文章目录 一、微信公众号测试号申请 二、文件的配置 1.config.py 2.getApi.py 三、其他文件&#xff08;可直接使用&#xff09; 1.sayGoodMoring.py/sayGoodNight.py&#xff08; 运行文件&#xff09; 2.getJ…

又是一篇教你摸鱼的文章,用Python实现自动发送周报给老板

前言 有没有哪个同志跟我一样&#xff0c;每周都要写工作周报 像我这种记性不好的&#xff0c;一个月四周忘记三次 索性就用Python写个小工具&#xff0c;让它每周帮我给老板发周报~ Github: Weekday 小工具 提出目标 源码.资料.素材.点击领取即可 想有一个工具能发邮件 目…

python微信公众号自动推送(十分简单的教程)

目录 一、注册微信公众号 1.注册链接 2.登录成功 3.关注该公众号 4.创建模板 二、代码实现 1.爬取天气信息 2.计算生日天数 3.获取access token 4.获取关注者的openid 5.向用户广播消息 6.最终代码 2023年五月五日更&#xff1a; 自五月四日起原来的微信公众号模版将不…

chatGPT说明SQLAlchemy中的关系加载技术,joinedload加载方式,并与selectinload的不同之处

之前一直对SQLAlchemy中的关系加载很模糊 一次百度在SQLAlchemy中如何加载关联数据&#xff0c;给出的答案是selectinload&#xff0c;发现蛮好用&#xff0c;就一直使用了&#xff0c;没再继续了解其他的关系API&#xff0c;一次偶然的技术需要到这些了&#xff0c;赶紧来复习…

好用的码字软件,年入百万的大神作家们都在用

如今&#xff0c;码字软件需求很大&#xff0c;市面上也出现了很多码字软件&#xff0c;但找到一款适合自己的码字软件却并不容易&#xff0c;那么你知道大些大神作家们喜欢用什么软件么&#xff1f;其实我也不知道&#xff0c;但是我发现了一个秘密&#xff0c;那就是由橙瓜打…

猿创征文|五款程序员必备神级工具,看看你用过几个?

程序员必备的神级工具 一、有道词典二、XMind三、Notepad四、Typora五、Everything 一、有道词典 邻居家有个小孩&#xff0c;一个资深学瘾少年&#xff0c;有他经过的地方&#xff0c;总会引起周边妇女赞扬&#xff08;以及对其余所有孩子的无限嘲讽&#xff09;。 有一次&am…

一篇万字博文带你入坑爬虫这条不归路 【万字图文】

&#x1f47b;最近&#xff0c;很多粉丝私信我问——爬虫到底是什么&#xff1f;学习爬虫到底该从何下手&#xff1f;&#x1f47b; &#x1f62c;其实&#xff0c;我想说的也是曾经的我身为小白的时候某些大牛对我说过的——很多时候我们都有一颗想要学习新知识的心&#xff…

微软/Hotmail验证码识别97%识别率方案

如图所示&#xff0c;微软Hotmail的验证码与我们往常所见的验证码略有不同&#xff0c;他是 【双层粘结】 的验证码&#xff0c;这对于我们识别有什么影响呢&#xff1f; 我们先来看CTC算法的TimeStep在语音识别中的表示&#xff1a; 因为位数不固定&#xff0c;一般通过端到…

EasyCaptcha图形验证码工具

介绍 Java图形验证码工具&#xff0c;支持gif&#xff08;动图&#xff09;、中文、算术等类型&#xff0c;可用于Java Web、JavaSE等项目。 快速开始 导入依赖 <dependency><groupId>com.github.whvcse</groupId><artifactId>easy-captcha</art…

您的captcha验证码设置对了吗?

Web App 评估可能是当今最流行的渗透测试之一。它们非常受欢迎&#xff0c;以至于 Hacker One 和 Bug Crowd 等公共漏洞赏金网站为希望修复 XSS、SQL 注入、CSRF 等漏洞的公司提供了数百个程序。许多公司还拥有自己的赏金计划&#xff0c;用于向以下人员报告 Web 漏洞一个安全团…

微软验证码项目 Captcha Code Demo 从 .NET Core 1.1.2升级到2.1.0

How to make and use captcha code in ASP.NET Core 在ASP.NET Core 中如何实现 captcha 验证码 这个 Demo 是在微软 msdn 中找到的&#xff0c;早期 2017年6月30日发布。发现它的时候是 2019年10月30日。这时候 .NET Core 版本 3.0 已发布。Visual Studio 2019 也已经自动更新…

【文心一言】广告文案、演讲稿与请假条自动生成

前言 作为一名大学生而言&#xff0c;平时参加或者举办一些学校组织的活动的时候&#xff0c;总是避免不了需要准备一些演讲稿、广告宣传文案等内容&#xff0c;甚至于在疫情十分严重的这几年内&#xff0c;如何跟老师“委婉的”请假&#xff0c;也成为了我日常头疼的事情。但在…

如何设计好一条推送通知

你注意过么&#xff0c;每天从不同的 App 上收到的大量的推送通知与提醒&#xff0c;这些通知里有多少你真的有兴趣? 智能手表屏幕上无意义的通知 每天&#xff0c;用户对各种没用的通知应接不暇&#xff0c;这些通知让他们分散注意力&#xff0c;甚至成为了骚扰。骚扰的通知…

通知栏消息文案写作干货:个推手把手教你写

去搜一搜消息推送的入门秘籍、干货精华&#xff0c;始终绕不开“推送有价值的信息很关键”&#xff0c;其载体则是走心的文案&#xff0c;那么对于APP运营人员来说&#xff0c;什么样的推送文案称得上“优秀”&#xff1f;本文结合部分APP的通知栏消息案例&#xff0c;从中规中…