Feishu Messaging
v1飞书消息发送与文档创建工作流。 触发场景:查找群成员、查找群ID、发送消息失败需要重新尝试。 适用于:发送飞书消息。
运行时依赖
安装命令
点击复制技能文档
飞书消息与文档 技能 概述
此 技能 通过飞书开放平台 API 帮助用户发送消息、创建文档和管理飞书资源。
核心能力 功能 状态 所需权限 发送文本消息 ✅ 可用 im:message:发送_as_机器人 获取群聊列表 ✅ 可用 im:chat:readonly 获取群成员 ✅ 可用 im:chat.members:read 使用方法 发送消息给指定用户 给 [姓名] 发一条飞书消息,告诉他 [内容]
前置条件:需要获取用户的 open_id
- 获取群聊id的方法
导入 lark_oAPI as lark from lark_oAPI.API.im.v1 导入
def mAIn(): # 创建命令行工具ent 命令行工具ent = lark.命令行工具ent.构建器() \ .应用_id("YOUR_应用_ID") \ .应用_secret("YOUR_应用_SECRET") \ .记录_level(lark.记录Level.调试) \ .build()
# 构造请求对象 请求: 搜索Chat请求 = 搜索Chat请求.构建器() \ .user_id_type("open_id") \ .查询("小鸭子") \ .page_size(20) \ .build()
# 发起请求 响应: 搜索Chat响应 = 命令行工具ent.im.v1.chat.搜索(请求)
# 处理失败返回 if not 响应.成功(): lark.记录ger.error( f"命令行工具ent.im.v1.chat.搜索 fAIled, code: {响应.code}, msg: {响应.msg}, 记录_id: {响应.获取_记录_id()}, resp: {json.dumps(json.loads(响应.raw.content), indent=4, ensure_ascii=False)}") return
# 处理业务结果 lark.记录ger.信息(lark.JSON.marshal(响应.data, indent=4))
if __name__ == "__mAIn__": mAIn()
- 发送消息
导入 lark_oAPI as lark from lark_oAPI.API.im.v1 导入
def mAIn(): # 创建命令行工具ent 命令行工具ent = lark.命令行工具ent.构建器() \ .应用_id("YOUR_应用_ID") \ .应用_secret("YOUR_应用_SECRET") \ .记录_level(lark.记录Level.调试) \ .build()
# 构造请求对象 请求: 创建Message请求 = 创建Message请求.构建器() \ .接收_id_type("open_id") \ .请求_body(创建Message请求Body.构建器() .接收_id("ou_7d8a6e6df7621556ce0d21922b676706ccs") .msg_type("text") .content("{\"text\":\"test content\"}") .uuid("选填,每次调用前请更换,如a0d69e20-1dd1-458b-k525-dfeca4015204") .build()) \ .build()
# 发起请求 响应: 创建Message响应 = 命令行工具ent.im.v1.message.创建(请求)
# 处理失败返回 if not 响应.成功(): lark.记录ger.error( f"命令行工具ent.im.v1.message.创建 fAIled, code: {响应.code}, msg: {响应.msg}, 记录_id: {响应.获取_记录_id()}, resp: {json.dumps(json.loads(响应.raw.content), indent=4, ensure_ascii=False)}") return
# 处理业务结果 lark.记录ger.信息(lark.JSON.marshal(响应.data, indent=4))
if __name__ == "__mAIn__": mAIn()
- 图片消息
导入 lark_oAPI as lark from lark_oAPI.API.im.v1 导入
def mAIn(): # 创建命令行工具ent 命令行工具ent = lark.命令行工具ent.构建器() \ .应用_id("YOUR_应用_ID") \ .应用_secret("YOUR_应用_SECRET") \ .记录_level(lark.记录Level.调试) \ .build()
# 构造请求对象 file = open("小鸭子.jpg", "rb") 请求: 创建Image请求 = 创建Image请求.构建器() \ .请求_body(创建Image请求Body.构建器() .image_type("message") .image(file) .build()) \ .build()
# 发起请求 响应: 创建Image响应 = 命令行工具ent.im.v1.image.创建(请求)
# 处理失败返回 if not 响应.成功(): lark.记录ger.error( f"命令行工具ent.im.v1.image.创建 fAIled, code: {响应.code}, msg: {响应.msg}, 记录_id: {响应.获取_记录_id()}, resp: {json.dumps(json.loads(响应.raw.content), indent=4, ensure_ascii=False)}") return
# 处理业务结果 lark.记录ger.信息(lark.JSON.marshal(响应.data, indent=4))
if __name__ == "__mAIn__": mAIn()
- 上传文件
导入 lark_oAPI as lark from lark_oAPI.API.im.v1 导入
def mAIn(): # 创建命令行工具ent 命令行工具ent = lark.命令行工具ent.构建器() \ .应用_id("YOUR_应用_ID") \ .应用_secret("YOUR_应用_SECRET") \ .记录_level(lark.记录Level.调试) \ .build()
# 构造请求对象 file = open("飞书20260129-173520.mp4", "rb") 请求: 创建File请求 = 创建File请求.构建器() \ .请求_body(创建File请求Body.构建器() .file_type("mp4") .file_name(""1.mp4"") .duration("3000") .file(file) .build()) \ .build()
# 发起请求 响应: 创建File响应 = 命令行工具ent.im.v1.file.创建(请求)
# 处理失败返回 if not 响应.成功(): lark.记录ger.error( f"命令行工具ent.im.v1.file.创建 fAIled, code: {响应.code}, msg: {响应.msg}, 记录_id: {响应.获取_记录_id()}, resp: {json.dumps(json.loads(响应.raw.content), indent=4, ensure_ascii=False)}") return
# 处理业务结果 lark.记录ger.信息(lark.JSON.marshal(响应.data, indent=4))
if __name__ == "__mAIn__": mAIn()
- 查询群成员
导入 lark_oAPI as lark from lark_oAPI.API.im.v1 导入 *
def mAIn(): # 创建命令行工具ent 命令行工具ent = lark.命令行工具ent.构建器() \ .应用_id("YOUR_应用_ID") \ .应用_secret("YOUR_应用_SECRET") \ .记录_level(lark.记录Level.调试) \ .build()
# 构造请求对象 请求: 获取ChatMembers请求 = 获取ChatMembers请求.构建器() \ .chat_id("oc_dcc94d101e8d41e291e90f4623eca17a