当前位置: 首页 > news >正文

企业飞书应用机器人,使用python发送图文信息到群

企业飞书应用的自动化,需要创建企业应用,应用开通机器人能力,并获取机器人所需的app_idapp_secret(这一部分大家可以在飞书的控制台获取:https://open.feishu.cn/api-explorer/)

文章目录

  • 步骤1:上传图片
  • 步骤2:构造富文本信息

飞书发送图文信息到群需要以下几个步骤:

  1. 使用机器人先上传图片,获取图片对应的file_key
  2. 将图片对应的file_key与文字内容构造成一个富文本(核心)
  3. 在群里发送构造好的富文本

步骤1:上传图片

比如说上传这样的一个图片叫robot.jpg

博主提供一个整理好的工具函数:

def fs_upload_pic(pic_path, app_id=None, app_secret=None):"""上传图片"""# 创建clientclient = 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

步骤2:构造富文本信息

发送富文本的更多信息可以参考: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"]}],]}}

发送富文本,博主这里提供一个工具函数,其中几个参数:

  1. rich_content:字典格式的富文本内容
  2. chat_id:发送的群id,在API调试台可以直接获取(https://open.feishu.cn/api-explorer/)

在工具函数中,富文本会经过处理:str(rich_content).replace("'", "\""),这样处理后的字典格式数据就能直接发送了

def fs_send_rich_text(rich_content: dict, chat_id, app_id=None, app_secret=None):"""发送富文本"""# 创建clientclient = 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)

发送后的效果如下:
在这里插入图片描述

相关文章:

企业飞书应用机器人,使用python发送图文信息到群

企业飞书应用的自动化,需要创建企业应用,应用开通机器人能力,并获取机器人所需的app_id与app_secret(这一部分大家可以在飞书的控制台获取:https://open.feishu.cn/api-explorer/) 文章目录 步骤1&#xff…...

设计模式1-访问者模式

访问者模式是一种行为设计模式,它允许你定义在对象结构中的元素上进行操作的新操作,而无需修改这些元素的类。这种模式的主要思想是将算法与元素的结构分离开,使得可以在不修改元素结构的情况下定义新的操作。 所谓算法与元素结构分离&#x…...

Android meminfo 查看方法及解析

目录 Android 上查看memory 信息的方法 内存限制的信息 手动释放缓存 例 adb shell dumpsys meminfo pid 解析 adb shell dumpsys meminfo 汇总信息说明 Total RAM Free RAM ION Used RAM Lost RAM ZRAM /proc/meminfo 参考文档 Android 上查看memory 信息的方法 …...

微信小程序解决华为手机保存图片到相册失败

1.新增隐私设置 2.优化代码 新增uni.authorize判断 _saveCode() {let that this;console.log(点击了保存图片)console.log(this.result)uni.authorize({scope: scope.writePhotosAlbum,success(e) {console.log(e)if (this.result ! "") {uni.saveImageToPhotosAlb…...

板块零 IDEA编译器基础:第三节 下载和在IDEA中集成 Tomcat服务器 来自【汤米尼克的JAVAEE全套教程专栏】

板块零 IDEA编译器基础:第三节 下载和在IDEA中集成 Tomcat服务器 一、为什么选择Tomcat(1)常见的JAVA WEB服务器(2)选择Tomcat的理由 二、Tomcat 8.5下载解压三、Tomcat 结构目录四、在IDEA中集成Tomcat 假设我们已经…...

2024/2/6

一、填空题 1、一个类的头文件如下所示&#xff0c;num初始化值为5&#xff0c;程序产生对象T&#xff0c;且修改num为10&#xff0c;并使用show()函数输出num的值10。 #include <iostream.h> class Test { private: static int num; public: Test(int); void sho…...

mysql清空表数据后如何让自增ID仍从1开始

有2种方法&#xff1a; 1、清空表时使用truncate命令&#xff0c;而不用delete命令 truncate test; 使用truncate命令的好处&#xff1a; 1&#xff09;、速度快 2&#xff09;、可以对自增ID进行重排&#xff0c;使自增ID仍从1开始计算 2、清空表数据后&#xff0c;使用alter…...

C++集群聊天服务器 数据模块+业务模块+CMake构建项目 笔记 (上)

跟着施磊老师做C项目&#xff0c;施磊老师_腾讯课堂 (qq.com) 本文在此篇博客的基础上继续实现数据模块和业务模块代码&#xff1a; C集群聊天服务器 网络模块业务模块CMake构建项目 笔记 &#xff08;上&#xff09;-CSDN博客https://blog.csdn.net/weixin_41987016/article…...

#Js篇:字符串的使用方法es5和es6

字符串 \ &#xff1a;单引号&#xff08;\u0027&#xff09;\" &#xff1a;双引号&#xff08;\u0022&#xff09; charAt 定义&#xff1a; 返回指定位置的字符&#xff0c;参数时从0开始编号的位置 参数&#xff1a; 位置下标 abc.charAt(1) // "b" …...

SpringBoo+Vue构建简洁日志文件查看系统

点击下载《SpringBooVue构建日志文件查看系统&#xff08;源代码&#xff09;》 1. 前言 想必经常做java开发的小伙伴&#xff0c;其大多数服务都是运行在linux系统上的&#xff0c;当遇到一些比较棘手的bug需要处理时&#xff0c;经常要上服务器去捞日志&#xff0c;然后通过…...

JavaScript基础第二天

JavaScript基础第二天 今天我们学习if分支语句、三元表达式和switch-case语句。 1. if分支语句 1.1 语法 if (条件表达式){// 满足条件要执行的语句 } else {// 不满足条件要执行的语句 }if中的内容如果为true&#xff0c;就执行大括号的代码块&#xff0c;如果为false执行…...

2、卷积和ReLU激活函数

python了解集合网络如何创建具有卷积层的特性。 文章目录 简介特征提取(Feature Extraction)卷积过滤(Filter with Convolution)Weights(权重)激活(Activations)用ReLU检测示例 - 应用卷积和ReLU结论In [1]: import numpy as np from itertools import productdef show_kerne…...

SQL世界之基础命令语句

目录 一、SQL SELECT 语句 1.SQL SELECT 语法 2.SQL SELECT 实例 3.SQL SELECT * 实例 二、SQL SELECT DISTINCT 语句 1.语法 2.使用 DISTINCT 关键词 三、SQL SELECT WHERE 语句 1.WHERE 子句 2.语法 3.使用 WHERE 子句 4.引号的使用 四、SQL SELECT AND&OR …...

Facebook未来展望:社交媒体的下一个篇章

社交媒体一直是连接人与人之间的纽带&#xff0c;而Facebook则一直在推动这一领域的发展。随着科技不断演进和社会需求的不断变迁&#xff0c;Facebook正积极筹谋社交媒体的下一个篇章。本文将深入剖析Facebook的未来展望&#xff0c;探讨其在社交媒体领域所迎接的新时代。 1. …...

源码搭建教学:直播带货商城小程序开发

结合小程序开发的直播带货商城&#xff0c;不仅可以提供更便捷的购物体验&#xff0c;还可以实现更高效的销售。因此&#xff0c;学习如何搭建一个直播带货商城小程序将成为您拓展商业领域的利器。 步骤一&#xff1a;准备工作 在开始开发之前&#xff0c;您需要进行一些准备工…...

vue-cli引入本地json数据:封装为js文件,无需请求直接读取

vue-cli引入本地json数据 1、新建js文件&#xff08;路径自定义&#xff09;&#xff0c;写入JSON数据 /* jsonData.js */export let jsonData { // 声明变量&#xff0c;存储数据// JSON源数据 }2、组件内引入js文件&#xff0c;读取数据 /* Example.vue */import { json…...

20240202在Ubuntu20.04.6下使用whisper.cpp的显卡模式

20240202在Ubuntu20.04.6下使用whisper.cpp的显卡模式 2024/2/2 19:43 【结论&#xff1a;在Ubuntu20.04.6下&#xff0c;确认large模式识别7分钟中文视频&#xff0c;需要356447.78 ms&#xff0c;也就是356.5秒&#xff0c;需要大概5分钟&#xff01;效率太差&#xff01;】 …...

前端面试拼图-数据结构与算法

摘要&#xff1a;总结一些前端算法题&#xff0c;持续更新&#xff01; 一、数据结构与算法 时间复杂度-程序执行时需要的计算量&#xff08;CPU&#xff09; 空间复杂度-程序执行时需要的内存空间 前端开发&#xff1a;重时间&#xff0c;轻空间 1.把一个数组旋转k步 arr…...

在C++的union中使用std::string(非POD对象)的陷阱

struct和union的对比 union最开始是C语言中的关键字&#xff0c;在嵌入式中比较常见&#xff0c;由于嵌入式内存比较稀缺&#xff0c;所以常用union用来节约空间&#xff0c;在其他需要节省内存的地方也可以用到这个关键字&#xff0c;写一个简单程序来说明union的用途 struc…...

Spring Cloud Netflix Eureka的参数调优

下面主要分为Client端和Server端两大类进行简述&#xff0c;Eureka的几个核心参数 客户端参数 Client端的核心参数 参数默认值说明eureka.client.availability-zones告知Client有哪些region以及availability-zones&#xff0c;支持配置修改运行时生效eureka.client.filter-o…...

语音提示工程实战:从原理到应用,构建高质量AI语音交互

1. 项目概述&#xff1a;语音提示工程的“Awesome”宝库如果你正在探索语音AI应用&#xff0c;或者对如何让ChatGPT、Claude这类大语言模型“开口说话”感到好奇&#xff0c;那么你很可能已经遇到了一个核心难题&#xff1a;如何写出一个真正有效的语音提示词&#xff1f;这不仅…...

我靠技术博客,从无人问津到拿到硅谷offer

在软件测试这个领域&#xff0c;我们常常自嘲是“质量守门员”&#xff0c;却很少把自己当作技术的创造者与传播者。三年前&#xff0c;我和大多数测试同行一样&#xff0c;每天重复着用例设计、手工执行、提交缺陷的循环&#xff0c;偶尔写点自动化脚本&#xff0c;也仅止于“…...

星链引擎:AI 驱动的全域营销决策自动化系统技术实现

一、引言在当前数字化营销时代&#xff0c;企业面临着前所未有的数据爆炸和决策复杂度。一个典型的全域营销场景中&#xff0c;企业每天需要处理来自多个平台的数百万条用户行为数据&#xff0c;同时还要根据市场变化、竞品动态和用户反馈&#xff0c;实时调整内容策略、发布策…...

如何快速掌握AMD Ryzen硬件调试:SMUDebugTool性能优化完整指南

如何快速掌握AMD Ryzen硬件调试&#xff1a;SMUDebugTool性能优化完整指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: ht…...

五分钟完成python脚本对接taotoken多模型api的教程

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 五分钟完成Python脚本对接Taotoken多模型API的教程 对于希望快速接入多个主流大模型的Python开发者而言&#xff0c;Taotoken提供的…...

RAG 系统性能优化完全指南:从“答非所问“到“精准命中“的六步进化

&#x1f3af; RAG 系统性能优化完全指南&#xff1a;从"答非所问"到"精准命中"的六步进化 一句话总结&#xff1a;本文用餐厅备菜的类比&#xff0c;拆解 RAG 系统六大优化环节——从智能切菜、混合找料、精选食材到严控火候&#xff0c;让你的 AI 回答又…...

终极指南:调度系统架构设计的核心原理与实践技巧

终极指南&#xff1a;调度系统架构设计的核心原理与实践技巧 【免费下载链接】system-design-101 Explain complex systems using visuals and simple terms. Help you prepare for system design interviews. 项目地址: https://gitcode.com/GitHub_Trending/sy/system-desi…...

基于RT-Thread与N32G457的三通道UART透明监控网关设计与实现

1. 项目概述与核心需求解析在嵌入式开发&#xff0c;特别是涉及工业控制、智能硬件或者多设备联调的现场&#xff0c;我们经常会遇到一个非常实际的痛点&#xff1a;如何在不干扰原有通信链路的前提下&#xff0c;实时监控两台设备之间的串口数据交互。无论是调试新的通信协议&…...

长期使用Taotoken对接各类工具后的稳定性综合观感

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 长期使用Taotoken对接各类工具后的稳定性综合观感 作为一名长期将大模型能力集成到日常开发与自动化流程中的开发者&#xff0c;我…...

胶片颗粒≠随机噪点,35mm风格出图翻车全解析,深度拆解ISO模拟、过期胶卷色偏与显影液残留建模逻辑

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;胶片颗粒≠随机噪点&#xff0c;35mm风格出图翻车全解析 胶片摄影的颗粒感&#xff08;Grain&#xff09;是银盐晶体在显影过程中形成的物理性、非均匀、结构化纹理&#xff0c;而数字图像中常见的“噪…...