The Feishu Open Platform provides server-side APIs for messaging, contacts, approval, sheets, Base, and many other product capabilities. This SDK wraps the repeated platform work around API calls, including token management, request signing, encryption/decryption, event dispatching, and typed request/response models.
- Preparations before development
- Calling server-side APIs
- Handle events
- Handle card callbacks
- SDK FAQs
pip install lark-oapiPython 3.8 or later is required.
import lark_oapi as lark
from lark_oapi.api.im.v1 import *
client = lark.Client.builder() \
.app_id("cli_xxx") \
.app_secret("your_app_secret") \
.build()
request = CreateMessageRequest.builder() \
.receive_id_type("chat_id") \
.request_body(CreateMessageRequestBody.builder()
.receive_id("oc_xxx")
.msg_type("text")
.content("{\"text\":\"hello world\"}")
.build()) \
.build()
response = client.im.v1.message.create(request)lark_oapi.channel is a high-level module built on top of the OpenAPI client
and event transport. It bundles event listening, message normalization, safety
policy, outbound sending, media upload/download, card interactions, and
streaming replies into a single FeishuChannel entry point.
Use Channel when you are building a conversational bot that needs normalized message events, replies, media handling, card callbacks, mention policy, or WebSocket/webhook transport management.
import asyncio
import os
from lark_oapi.channel import FeishuChannel
channel = FeishuChannel(
app_id=os.environ["LARK_APP_ID"],
app_secret=os.environ["LARK_APP_SECRET"],
)
async def on_message(msg):
await channel.send(
msg.chat_id,
{"text": f"echo: {msg.content_text}"},
)
channel.on("message", on_message)
asyncio.run(channel.connect())Full Channel documentation:
More composite API examples and business scenario samples are available in oapi-sdk-python-demo.
- Send file message
- Send image message
- List users under a department
- Create a Base app with tables
- Robot quick start
MIT
Click Server SDK in the upper right corner of the documentation page and submit feedback.