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

这篇具有很好参考价值的文章主要介绍了Python实现飞书机器人定时发送文本、图片等群消息。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

  • 飞书群-设置-群机器人-添加机器人-自定义机器人;
    飞书机器人发送图片,Python,python,chatgpt

  • 复制webhook地址,webhook地址就是用来发送消息的接口;
    飞书机器人发送图片,Python,python,chatgpt

2. 通过webhook发送群消息

参考:飞书官方开发文档

2.1 发送文本消息

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

class FeishuTalk:

    # 机器人webhook
    chatGPT_url = 'https://open.feishu.cn/open-apis/bot/v2/hook/XXX'

    # 发送文本消息
    def sendTextmessage(self, content):
        url = self.chatGPT_url
        headers = {
            "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)

飞书机器人发送图片,Python,python,chatgpt

2.2 发送富文本消息

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

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

    # 发送富文本消息
    def sendFuTextmessage(self, content):
        url = self.chatGPT_url
        headers = {
            "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 = 1
        for item in response['data']['band_list']:
            bandDict = {"tag": "text"}
            bandList = []
            bandDict.update({"text": "No." + str(index) + ":" + item['word']})
            bandList.append(bandDict)
            index += 1
            bandList_all.append(bandList)
        return bandList_all

# 发送富文本消息
content = FeishuTalk().getHotBand()
FeishuTalk().sendFuTextmessage(content)
# 注:富文本消息的content消息体格式如下   
[
  [
    {
      "tag": "text",
      "text": "第一行 :"
    }
  ],
  [
    {
      "tag": "text",
      "text": "第二行:"
    }
  ]
]

飞书机器人发送图片,Python,python,chatgpt

2.3 发送图片消息

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

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

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

class FeishuTalk:
    # 应用凭证,获取方式查看上面的步骤
    app_id = "cli_a37c6ffbdxxxxxxx"
    app_secret = "mLstZkv0C4d1sxxxxxxxxxxxxxxx"
    # 机器人webhook
    chatGPT_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_key
        get_image_key_url = "https://open.feishu.cn/open-apis/im/v1/images"
        form = {'image_type': 'message',
                'image': (open(picturePath, 'rb'))}  # 需要替换具体的path
        multi_form = MultipartEncoder(form)
        image_key_headers['Content-Type'] = multi_form.content_type
        response = requests.request("POST", get_image_key_url, headers=image_key_headers, data=multi_form).json()
        # print(response.headers['X-Tt-Logid'])  # for debug or oncall
        image_key = response['data']['image_key']
        print("image_key:", image_key)
        # 发送图片
        url = self.chatGPT_url
        form = {'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)

飞书机器人发送图片,Python,python,chatgpt文章来源地址https://www.toymoban.com/news/detail-823263.html

到了这里,关于Python实现飞书机器人定时发送文本、图片等群消息的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ElastAlert通过飞书机器人发送报警通知

    公司采用ELK架构搜集业务系统的运行日志,以前开发人员只有在业务出现问题的时候,才会去kibana上进行日志搜索操作,每次都是被用户告知系统出问题了,这简直是被啪啪打脸~ 于是痛定思痛,决定主动出击,查阅了许多资料,发现ElastAlert这个服务能够对elasticsearch的索引按

    2024年02月07日
    浏览(46)
  • 【Postman】调用飞书机器人接口发送消息

    1、进入飞书,新建一个群组,添加机器人 2、点击该机器人,复制webhook地址 3、打开postman,在url中输入该webhook地址,输入需要请求的json内容,点击发送 内容例如: 4、飞书就会收到对应的消息推送了 5、请求内容的格式参见飞书机器人文档 自定义机器人指南

    2024年02月13日
    浏览(59)
  • 【Linux】+【Jenkins】+【飞书机器人】发送通知(带签名)

    自定义机器人使用指南飞书官网https://open.feishu.cn/document/client-docs/bot-v3/add-custom-bot 我这个设置了签名的,具体怎么设置签名可以查看飞书官方文档 可以看到上传去是没有执行权限的,一定要记得叫上执行权限 chmod +x sendMsg.py 最后一个参数标识 0 开始构建 1 构建完成 /opt/java/scri

    2024年02月14日
    浏览(41)
  • 企业微信、飞书、钉钉机器人消息发送工具类

    其实你也可以使用RestTemplate,我这里主要是用到了webflux框架,所以需要实例化客户端请求对象

    2024年02月10日
    浏览(53)
  • linux+Jenkins+飞书机器人发送通知(带签名)

    自定义机器人使用指南飞书官网https://open.feishu.cn/document/client-docs/bot-v3/add-custom-bot 我这个设置了签名的,具体怎么设置签名可以查看飞书官方文档 可以看到上传去是没有执行权限的,一定要记得叫上执行权限 chmod +x sendMsg.py 最后一个参数标识 0 开始构建 1 构建完成 /opt/java/scri

    2024年02月15日
    浏览(59)
  • 【Jenkins】+【飞书机器人】发送通知(带签名)【Linux】

    自定义机器人使用指南飞书官网https://open.feishu.cn/document/client-docs/bot-v3/add-custom-bot 我这个设置了签名的,具体怎么设置签名可以查看飞书官方文档 可以看到上传去是没有执行权限的,一定要记得叫上执行权限 chmod +x sendMsg.py 最后一个参数标识 0 开始构建 1 构建完成 /opt/java/scri

    2024年02月13日
    浏览(41)
  • Jenkins+Allure测试报告+飞书机器人发送通知

    本篇讲述在jenkins构建成功后,如何生成测试报告,以及推送飞书(因为我公司用的是飞书,所以是发送到飞书机器人)。 本次实践搞了一天,踩了一些坑,其中有2个坑可参考如下: 1、关于jenkins生成allure报告是空的:https://blog.csdn.net/qq_37159446/article/details/122233467 2、如遇到构

    2024年02月04日
    浏览(36)
  • 如何实现企微群机器人定时发送消息提醒?

    一、首先添加群机器人 二、创建完成的机器人是这样的,会有一个唯一标识:Webhook地址 三、设置 机器人发消息文本 以下是用curl工具往群组推送文本消息的示例(注意要将url替换成你的机器人webhook地址,content必须是utf8编码): 具体可以详见 机器人配置说明 机器人搞定了

    2024年02月09日
    浏览(50)
  • php对接飞书自定义机器人发送消息功能

    今天收到一个需求,需要定时去监控业务是否正常稳定,并将错误信息发送到飞书,之前接入过钉钉机器人都比较顺利,但是今天接入飞书居然卡了半天,特此分享给大家,避免踩坑 1,首先创建飞书机器人 2.创建完成之后,获取机器人对应的 webhook 地址 格式如下: 3.下面提

    2024年04月09日
    浏览(53)
  • Grafana无法发送告警消息的飞书webhook(机器人)

    Grafana无法向飞书机器人发送报警消息,实测使用Grafana自带的webhook也不好使,对于用飞书办公的程序猿非常不便,后来发现一个报警神器,开源免费,关键是好用 PrometheusAlert PrometheusAlert是一个即装即用的程序,非常好用,具体步骤如下: 进入模板页面 找到grafana-fs进入 测试

    2024年02月03日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包