赞
踩
企业飞书应用的自动化,需要创建企业应用,应用开通机器人能力,并获取机器人所需的app_id
与app_secret
(这一部分大家可以在飞书的控制台获取:https://open.feishu.cn/api-explorer/)
飞书发送图文信息到群需要以下几个步骤:
file_key
file_key
与文字内容构造成一个富文本(核心)比如说上传这样的一个图片叫robot.jpg
:
博主提供一个整理好的工具函数:
def fs_upload_pic(pic_path, app_id=None, app_secret=None): """上传图片""" # 创建client client = lark.Client.builder().app_id(app_id).app_secret(app_secret).log_level(lark.LogLevel.DEBUG).build() # 构造请求对象 request: CreateImageRequest = CreateImageRequest.builder().request_body( CreateImageRequestBody.builder().image_type("message").image(open(pic_path, "rb")).build()).build() # 发起请求 response: CreateImageResponse = client.im.v1.image.create(request) # 处理失败返回 if not response.success(): lark.logger.error( f"client.im.v1.image.create failed, code: {response.code}, msg: {response.msg}, log_id: {response.get_log_id()}") return None # 处理业务结果 return eval(lark.JSON.marshal(response.data))['image_key']
使用方法:
app_id="cli_xxxx",
app_secret="xxxxx",
img_key = fs_upload_pic("robot.jpg", app_id, app_secret)
print(img_key)
成功上传后得到如下img_key
:
img_v3_02xxxxxxxx
发送富文本的更多信息可以参考:https://open.feishu.cn/document/server-docs/im-v1/message-content-description/create_json
富文本的内容需要构造成字典的格式:
{
"zh_cn": {
"title": "我是一个标题",
"content": [
[
{
"tag": "text",
"text": "第一行:",
"style": ["bold", "underline"]
},
{"tag": "a", "href": "http://www.feishu.cn", "text": "超链接", "style": ["bold", "italic"]},
{"tag": "at", "user_id": "ou_1avnmsbv3k45jnk34j5", "style": ["lineThrough"]}
],
]
}}
发送富文本,博主这里提供一个工具函数,其中几个参数:
在工具函数中,富文本会经过处理:str(rich_content).replace("'", "\"")
,这样处理后的字典格式数据就能直接发送了
def fs_send_rich_text(rich_content: dict, chat_id, app_id=None, app_secret=None): """发送富文本""" # 创建client client = lark.Client.builder().app_id(app_id).app_secret(app_secret).log_level(lark.LogLevel.DEBUG).build() # 构造请求对象 request: CreateMessageRequest = CreateMessageRequest.builder() \ .receive_id_type("chat_id") \ .request_body(CreateMessageRequestBody.builder() .receive_id(chat_id) .msg_type("post") .content(str(rich_content).replace("'", "\"")) .build()) \ .build() # 发起请求 response: CreateMessageResponse = client.im.v1.message.create(request) # 处理失败返回 if not response.success(): lark.logger.error( f"client.im.v1.message.create failed, code: {response.code}, msg: {response.msg}, log_id: {response.get_log_id()}") return # 处理业务结果 lark.logger.info(lark.JSON.marshal(response.data, indent=4))
使用方法:
img_key = "img_v3_02xxxxxx" chat_id = "oc_00xxxxxxx" # 构造富文本 send_info = { "zh_cn": { "title": f"测试发送富文本信息", "content": [ [ { "tag": "text", "text": "下面是图片:", "style": ["bold", "underline"] }, ], [{"tag": "img", "image_key": img_key}], ] }, } fs_send_rich_text(send_info, chat_id, app_id, app_secret)
发送后的效果如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。