什么是一个插件?
我们想 grammY 是简明扼要的,但可扩展的。 为什么? 因为不是所有人都会使用所有的东西! 插件被设计为添加到上述软件的额外功能。
grammY 中的插件
大部分 bot 都需要的插件被直接内置到 grammY 核心库中。 这让新用户更容易使用它们,避免了需要额外安装一个新的软件包。
官方插件是和 grammY 的核心包一起发布的。 它们从 npm 上的 @grammyjs
安装,并在 GitHub 的 @grammyjs 组织下发布。 官方插件与 grammY 同步发布,确保插件与 grammY 的运行一致性。 官方插件文档的每一节标题中都有软件包(即插件)的名称。 举个例子,grammY runner 插件(runner
)需要通过 npm install @grammyjs
来安装。 (如果你在使用 Deno 而不是 Node.js,你应该从 https://grammy
模块的 mod
文件中导入)
还有一些第三方插件。 任何人都可以发布它们。 我们不保证它们是最新的、文档齐全的或与其他插件一起工作的。 如果你愿意,你自己的第三方插件也可以列在网站上,让更多的人知道。
概述
我们为你编制了一个简洁的概述,并为每个插件提供了简短的描述。 安装插件既有趣又简单,我们希望你了解我们为你准备的内容。
点击任何包名称以了解有关相应插件的更多信息
插件 | 包 | 描述 |
---|---|---|
Sessions | 内置 | 将用户数据存储在你的数据库中 |
Inline and Custom Keyboards | 内置 | 简化构建 inline 和 custom keyboard |
Media Groups | 内置 | 简化媒体组的发送和编辑 |
Inline Queries | 内置 | 轻松构建 inline query 的结果 |
Auto | auto | 自动处理速率限制 |
Conversations | conversations | 构建强大的对话界面和对话 |
Chat Members | chat | 跟踪哪个用户加入了哪个聊天 |
Emoji | emoji | 简化在代码中 Emoji 的使用 |
Files | files | 轻松处理文件 |
Hydration | hydrate | 对从 API 调用返回的对象调用方法 |
Internationalization | i18n or fluent | 让你的机器人说多种语言 |
Interactive Menus | menu | 设计具有灵活导航的动态按钮菜单 |
Parse Mode | parse | 简化消息格式化 |
Rate Limiter | ratelimiter | 自动限制向你的机器人发送垃圾消息的用户 |
Router | router | 将消息路由到代码的不同部分 |
Runner | runner | 大规模并发长轮询 |
Stateless Question | stateless | 创建没有数据存储的对话 |
Throttler | transformer | 减慢 API 调用速度 |
我们还有一些第三方插件! 您可以在导航菜单 插件 > 第三方 下找到它们。 一定要看一看!
grammY 中的插件类型
所有闪闪发光的东西都是金子,对吧? 好吧,一种不同的金子! grammY 可以利用两种类型的插件:中间件插件 和 转换器插件。 简单地说,grammY 中的插件要么返回一个中间件函数,要么返回一个转换器函数。 让我们来谈谈其中的区别。
类型 I: 中间件插件
中间件 是一个处理各种形式传入数据的函数。 中间件插件是作为——嗯,你猜对了——中间件,被喂给 bot 的插件。 这意味着你可以通过 bot
来安装它们。
类型 II: 转换器插件
转换器函数 与中间件相反! 它是一个处理传出数据的函数。 转换器插件是作为——你没疯!你又猜对了——转换器函数,被喂给 bot 的插件。 这意味着你可以通过 bot
来安装它们。
创建你自己的插件
如果你想开发一个插件并且和其他用户分享(甚至是在官方的 grammY 网站上发布的),你可以查看这个 有用的指南。
关于更多插件的想法
我们正在 Git