ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

飞书Python SDK 三步上手:装好 lark-oapi,10 分钟发出第一条消息

飞书Python SDK 三步上手:装好 lark-oapi,10 分钟发出第一条消息 飞书Python SDK 三步上手装好 lark-oapi10 分钟发出第一条消息【免费下载链接】oapi-sdk-pythonLarksuite development interface SDK项目地址: https://gitcode.com/gh_mirrors/oa/oapi-sdk-python飞书Python SDK包名lark-oapi是飞书开放平台官方服务端开发套件封装了消息、通讯录、审批等 60 多个产品的 API 调用外加事件订阅与 token 缓存把 REST 接口调用压缩成几行 Python 代码。项目速览它到底能帮你做什么自己裸调飞书接口时你得逐一手动处理tenant_access_token 怎么获取、事件推送的 CHALLENGE 校验怎么应答、AES 加密的负载怎么解密。lark-oapi 把这一整条链路装进了一个client对象请求签名、token 自动续期、事件分发全部下沉到 lark_oapi/core/ 底层你只管写业务。发消息、拉通讯录、发起审批都用client.im.v1.message.create这类属性路径直接调用不需要记 REST 细节。上图是对照关系文档里的接口 URL 路径与 SDK 调用路径一一对应看接口文档时不用来回换算。三步跑起来环境准备Python ≥ 3.8无需其他前置依赖。安装一条命令即可python3 -m pip install lark-oapi第一次成功调用给群发一条文本消息。消息相关的请求模型都在 lark_oapi/api/im/v1/ 下import lark_oapi as lark from lark_oapi.api.im.v1 import * client lark.Client.builder().app_id(cli_xxx).app_secret(SECRET).build() request CreateMessageRequest.builder().receive_id_type(chat_id) \ .request_body(CreateMessageRequestBody.builder() .receive_id(oc_xxx).msg_type(text) .content({text:hello}).build()).build() print(client.im.v1.message.create(request))想对照源码可执行git clone https://gitcode.com/gh_mirrors/oa/oapi-sdk-python仓库里samples/目录按场景放了可运行样例。能力版图目录职责一句话lark_oapi/api/60 多个产品 API按产品 版本号组织im、contact、approval、bitable 等lark_oapi/event/事件分发器验签、应答 CHALLENGE、按事件名路由到你的回调函数lark_oapi/core/地基层access_token 缓存、HTTP 传输、日志脱敏lark_oapi/ws/WebSocket 长连接客户端订阅事件不再依赖公网回调地址lark_oapi/channel/机器人通道模块已标记 legacy新能力迁往独立包samples/各场景可运行样例Flask 事件、卡片回调、长连接模式从Demo到生产群机器人自动回复。痛裸调 REST 要自己管 token 过期、receive_id 类型参数写错一个就发不出去。接法client.im.v1.message.create(request)一行发信响应里直接带 message_id。效果回复逻辑就是一个普通函数群机器人当天上线。接收并处理消息事件。痛平台第一次推的是 CHALLENGE 校验请求后面才跟加密负载手动解析校验容易浪费半天。接法用EventDispatcherHandler注册回调验签解密 SDK 代劳handler lark.EventDispatcherHandler.builder(lark.ENCRYPT_KEY, lark.VERIFICATION_TOKEN, lark.LogLevel.DEBUG) \ .register_p2_im_message_receive_v1(do_p2_im_message_receive_v1) \ .build()效果每个事件类型对应独立回调函数新增事件只要多注册一行。开发环境没有公网 IP。痛事件订阅要求可访问的请求地址本机或内网机器配不出来。接法换长连接模式lark_oapi/ws/ 里的客户端主动向平台拨出连接。效果cli.start()一句事件就开始推送咱们在笔记本上就能开发联调。配置与凭证认证链路很短把app_idapp_secret交给 SDK它自动获取并缓存 tenant_access_token租户级凭证过期自动刷新你不用写任何 token 逻辑。若订阅事件还需在控制台事件订阅页取 Encrypt Key 和 Verification Token 两个值客户端初始化就是一条链式调用lark.Client.builder().app_id(...).app_secret(...).build()。如果你的服务挂在 Flask 上lark_oapi/adapter/flask/ 里的请求解析工具可以直接接住平台推送的原始报文。常见踩坑速查报code 99991663、token 无效 → app_id 或 secret 抄错、环境变量名混用 → 打印环境变量复核确认 ID 以 cli_ 开头接口返回access denied→ 权限范围没开通 → 在控制台权限管理启用对应 scope 并发布新版本事件订阅只收到 CHALLENGE、没有业务事件 → 请求地址没填或 Verification Token 不一致 → 在事件订阅页填请求地址保持 Token 与代码中一致抛UnmarshalException→ 平台响应字段类型有变动 → 升级 lark-oapi 到最新版或拿原始响应手动处理长连接模式启动即失败 → APP_ID / APP_SECRET 未注入 → 启动前把环境变量配齐再调start()下一步一键注册应用lark.register_app走设备流扫码建应用可预填权限范围与事件订阅省去控制台手工点选。ClientAssertion 无密钥模式用外部签名服务提供的 JWT 断言替代 app_secret适合自研应用统一密钥托管。长连接上生产WebSocket 模式开发与生产同一套 API多实例部署时注意负载均衡分摊连接。样例库samples/下的可运行样例逐个跑一遍是熟悉各场景最快的方式。先把samples/event/flask_sample.py拷下来跑起来把应用凭证的三个值替换进去事件回调十分钟就能打通。卡住某个接口时去lark_oapi/api/下对应产品的版本目录查每个接口都有现成的请求/响应模型照着填空即可。【免费下载链接】oapi-sdk-pythonLarksuite development interface SDK项目地址: https://gitcode.com/gh_mirrors/oa/oapi-sdk-python创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表