Repository navigation
zh plugin dev apis platform
通过机器人 UUID 调用平台适配器的 API。发送消息链可继续使用 self.plugin.send_message();查询群组、用户及其他平台能力使用下面的接口。
async def call_platform_api(
self,
bot_uuid: str,
action: str,
params: dict[str, Any] | None = None,
) -> Any:
...在 Command、EventListener、Tool 等组件中通过 self.plugin 调用。返回值为可序列化的字典、列表、标量或 None,具体取决于动作;不是平台 SDK 对象。
group = await self.plugin.call_platform_api(
bot_uuid=bot_uuid,
action="get_group_info",
params={"group_id": "123456"},
)bot_uuid 可从 await self.plugin.get_bots() 获取,流水线事件中也可使用 await event_context.get_bot_uuid()。平台 ID 的值应来自实际事件或平台配置。
action |
params |
|---|---|
get_user_info |
user_id |
get_friend_list |
{} |
get_group_info |
group_id |
get_group_list |
{} |
get_group_member_list |
group_id |
get_group_member_info |
group_id, user_id
|
get_message / delete_message
|
chat_type, chat_id, message_id
|
set_group_name |
group_id, name
|
mute_member |
group_id, user_id, duration
|
unmute_member / kick_member
|
group_id, user_id
|
leave_group |
group_id |
approve_friend_request |
request_id, approve, remark
|
approve_group_invite |
request_id, approve
|
get_file_url |
file_id |
每个平台支持的动作不同,也可能要求机器人管理员权限。duration 单位为秒,0 的含义依平台而异,不应作为通用的永久禁言值。查询结果可能依赖平台缓存。机器人未运行、动作不受支持或参数不正确时,调用会抛出异常。
将外层 action 设为 call_platform_api,在 params 中填写平台动作及其参数。例如,使用 OneBot Omni 读取机器人账号信息:
account = await self.plugin.call_platform_api(
bot_uuid=bot_uuid,
action="call_platform_api",
params={"action": "get_login_info", "params": {}},
)只能调用适配器已声明的动作,并非任意平台接口都能透传。插件通过运行时调用宿主,不直接访问 ctx.query.adapter 或 adapter.bot。
运行器执行期间,self.plugin 的模型、工具、知识库、存储和平台调用自动关联当前运行并执行授权检查,无需传入 run_id。同一插件的并发运行互相隔离。不要在处理函数返回后继续调用这些运行关联的 API。
通过 await ctx.get_bot_uuid() 获取当前机器人。平台调用必须匹配本次工具授权:仅授权当前事件目标时,不能改传其他目标;未授权的动作(包括平台专有动作)会被拒绝。调试中的这些调用同样使用 Mock。
tools = await ctx.get_available_tools()
if any(tool["name"] == "event_get_actor" for tool in tools):
actor = await ctx.call_tool("event_get_actor")
await ctx.log(str(actor))Automatically synchronized from langbot-app/langbot-docs.
简体中文
指南
开发者
- 插件开发
- 插件 SDK API
- 核心开发
文章
- 浏览
- 产品动态
- 在线体验
- 技术解析
- 教程与集成
- 公告
API 参考
- Service API
English
Guides
- Quick Start
- Installation
-
Configure Bots
- Bots
- Discord
- Telegram
- Slack
- Mattermost
- LINE
- Web Page Bot
- HTTP Bot
- KOOK
- Feishu
- DingTalk
- WeChat Official Account
- QQ (OneBot v11)
- Satori (QQ & Multi-Platform)
- QQ Official Bot
- WeCom (Enterprise WeChat)
- AI Configuration
- Advanced Operations
- Using Plugins
- Enterprise support
Developers
-
Plugin Development
- Plugin Development Tutorial
- Completing Plugin Configuration Information
- Plugin Directory Structure
- Component Development
- Code Style Guide
- Certified plugins and shared runtime
- Publish Plugin
- Migration Guide
- Plugin SDK API
- Core Development
Articles
- Browse
- Product Updates
- Engineering
-
Tutorials & Integrations
- LangTARS: Open-Source AI Agent for Remote PC Control — Works with Dify, n8n & 10+ Messaging Platforms
- How to Connect DeepSeek R1 to WeChat, Discord & Telegram in 5 Minutes (FREE)
- Deploy Your Own AI Bot to Discord, Telegram & WeChat in 5 Minutes
- Finally Got My Dify Agent Working in Discord, Telegram and Slack
- How I Built a Multi-Platform AI Bot with Langflow's Drag-and-Drop Workflows
- How I Built a Multi-Platform AI Chatbot with n8n and LangBot
- LangBot 4.6.0 External Knowledge Base Tutorial: Integrating Dify with LangBot for RAG-powered Conversations
- Announcements
API Reference
- Service API
Other pages
日本語
ガイド
開発者
- プラグイン開発
- プラグイン SDK API
- コア開発
記事
- 一覧
- 製品アップデート
- エンジニアリング
-
チュートリアルと連携
- LangTARS:Dify・n8n と連携するオープンソース PC 操作 Agent
- DeepSeek R1 を WeChat・Discord・Telegram に5分で接続する方法
- AI Bot を Discord・Telegram・WeChat に5分でデプロイ
- Dify Agent を Discord・Telegram・Slack で動かす
- Langflow のドラッグ&ドロップでマルチプラットフォーム AI Bot を構築
- n8n と LangBot でマルチプラットフォーム AI Chatbot を構築
- LangBot 4.6.0 外部ナレッジベース入門:Dify と連携した RAG 会話
- お知らせ
API リファレンス
- Service API