圆月山庄资源网 Design By www.vgjia.com
一、创建飞书机器人
自定义飞书机器人操作步骤,具体详见飞书官方文档:《机器人 | 如何在群聊中使用机器人?》
二、调用飞书发送消息
自定义机器人添加完成后,就能向其 webhook 地址发送 POST 请求,从而在群聊中推送消息了。支持推送的消息格式有文本、富文本、图片消息,也可以分享群名片等。
参数msg_type代表消息类型,可传入:text(文本)/ post(富文本)/ image(图片)/ share_chat(分享群名片)/ interactive(消息卡片),可参照飞书接口文档:https://open.feishu.cn/document/ukTMukTMukTM/uUjNz4SN2MjL1YzM
发送文本消息
请求的消息体示例:
{ "open_id":"ou_5ad573a6411d72b8305fda3a9c15c70e", "root_id":"om_40eb06e7b84dc71c03e009ad3c754195", "chat_id":"oc_5ad11d72b830411d72b836c20", "user_id": "92e39a99", "email":"fanlv@gmail.com", "msg_type":"text", "content":{ "text":"text content<at user_id=\"ou_88a56e7e8e9f680b682f6905cc09098e\">test</at>" } }
Curl 请求 Demo
curl -X POST https://open.feishu.cn/open-apis/message/v4/send/ -H 'Authorization: Bearer t-fee42159a366c575f2cd2b2acde2ed1e94c89d5f' -H 'Content-Type: application/json' -d '{ "chat_id": "oc_f5b1a7eb27ae2c7b6adc2a74faf339ff", "msg_type": "text", "content": { "text": "text content<at user_id=\"ou_88a56e7e8e9f680b682f6905cc09098e\">test</at>" } }'
使用Python封装飞书请求
接下来我们以发送文本格式消息类型,进行以下封装,上代码:
# -*- coding:utf-8 -*- ''' @File : feiShuTalk.py @Time : 2020/11/9 11:45 @Author : DY @Version : V1.0.0 @Desciption: ''' import requests import json import logging import time import urllib import urllib3 urllib3.disable_warnings() try: JSONDecodeError = json.decoder.JSONDecodeError except AttributeError: JSONDecodeError = ValueError def is_not_null_and_blank_str(content): """ 非空字符串 :param content: 字符串 :return: 非空 - True,空 - False """ if content and content.strip(): return True else: return False class FeiShutalkChatbot(object): def __init__(self, webhook, secret=None, pc_slide=False, fail_notice=False): ''' 机器人初始化 :param webhook: 飞书群自定义机器人webhook地址 :param secret: 机器人安全设置页面勾选“加签”时需要传入的密钥 :param pc_slide: 消息链接打开方式,默认False为浏览器打开,设置为True时为PC端侧边栏打开 :param fail_notice: 消息发送失败提醒,默认为False不提醒,开发者可以根据返回的消息发送结果自行判断和处理 ''' super(FeiShutalkChatbot, self).__init__() self.headers = {'Content-Type': 'application/json; charset=utf-8'} self.webhook = webhook self.secret = secret self.pc_slide = pc_slide self.fail_notice = fail_notice def send_text(self, msg, open_id=[]): """ 消息类型为text类型 :param msg: 消息内容 :return: 返回消息发送结果 """ data = {"msg_type": "text", "at": {}} if is_not_null_and_blank_str(msg): # 传入msg非空 data["content"] = {"text": msg} else: logging.error("text类型,消息内容不能为空!") raise ValueError("text类型,消息内容不能为空!") logging.debug('text类型:%s' % data) return self.post(data) def post(self, data): """ 发送消息(内容UTF-8编码) :param data: 消息数据(字典) :return: 返回消息发送结果 """ try: post_data = json.dumps(data) response = requests.post(self.webhook, headers=self.headers, data=post_data, verify=False) except requests.exceptions.HTTPError as exc: logging.error("消息发送失败, HTTP error: %d, reason: %s" % (exc.response.status_code, exc.response.reason)) raise except requests.exceptions.ConnectionError: logging.error("消息发送失败,HTTP connection error!") raise except requests.exceptions.Timeout: logging.error("消息发送失败,Timeout error!") raise except requests.exceptions.RequestException: logging.error("消息发送失败, Request Exception!") raise else: try: result = response.json() except JSONDecodeError: logging.error("服务器响应异常,状态码:%s,响应内容:%s" % (response.status_code, response.text)) return {'errcode': 500, 'errmsg': '服务器响应异常'} else: logging.debug('发送结果:%s' % result) # 消息发送失败提醒(errcode 不为 0,表示消息发送异常),默认不提醒,开发者可以根据返回的消息发送结果自行判断和处理 if self.fail_notice and result.get('errcode', True): time_now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())) error_data = { "msgtype": "text", "text": { "content": "[注意-自动通知]飞书机器人消息发送失败,时间:%s,原因:%s,请及时跟进,谢谢!" % ( time_now, result['errmsg'] if result.get('errmsg', False) else '未知异常') }, "at": { "isAtAll": False } } logging.error("消息发送失败,自动通知:%s" % error_data) requests.post(self.webhook, headers=self.headers, data=json.dumps(error_data)) return result
封装后我们就可以直接调用封装的类,进行消息代码发送;执行以下代码后,就可以使用飞书发送消息咯,是不是很简单。
webhook = "https://open.feishu.cn/open-apis/bot/v2/hook/1d7b5d0c-03a5-44a9-8d7a-4d09b24bfea1" feishu = FeiShutalkChatbot(webhook) feishu.send_text("重庆百货-新世纪鱼胡路店内商品'1000800370-牛心白 约1kg'在商详[8]和榜单[7]中排名不一致")
以上就是Python调用飞书发送消息的示例的详细内容,更多关于python 飞书发送信息的资料请关注其它相关文章!
圆月山庄资源网 Design By www.vgjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
圆月山庄资源网 Design By www.vgjia.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年11月02日
2024年11月02日
- 《暗喻幻想》顺风耳作用介绍
- 崔健1985-梦中的倾诉[再版][WAV+CUE]
- 黄子馨《追星Xin的恋人们2》HQ头版限量编号[WAV+CUE]
- 孟庭苇《情人的眼泪》开盘母带[低速原抓WAV+CUE]
- 孙露《谁为我停留HQCD》[低速原抓WAV+CUE][1.1G]
- 孙悦《时光音乐会》纯银CD[低速原抓WAV+CUE][1.1G]
- 任然《渐晚》[FLAC/分轨][72.32MB]
- 英雄联盟新英雄安蓓萨上线了吗 新英雄安蓓萨技能介绍
- 魔兽世界奥杜尔竞速赛什么时候开启 奥杜尔竞速赛开启时间介绍
- 无畏契约CGRS准星代码多少 CGRS准星代码分享一览
- 张靓颖.2012-倾听【少城时代】【WAV+CUE】
- 游鸿明.1999-五月的雪【大宇国际】【WAV+CUE】
- 曹方.2005-遇见我【钛友文化】【WAV+CUE】
- Unity6引擎上线:稳定性提升、CPU性能最高提升4倍
- 人皇Sky今日举行婚礼!电竞传奇步入新篇章