网关Intents入门

Intents 的简介。意图基本上允许机器人订阅特定的事件桶。对应于每个 intent 的事件记录在 Intents 对象的各个属性中。

这些`intents` 参数会被传递给 Client 或其子类 (AutoShardedClient, AutoShardedBot, Bot) 的构造函。

如果未传递意图,则库默认启用除需要申请的 Intent 之外的每个 Intent 。

需要什么Intents?

你的机器人所需的意图只能由你自己决定。 Intents 类中的每个属性都记录了它对应的 events 以及它启用的缓存类型。

例如,如果你想要一个没有Guild事件的机器人,那么我们可以执行以下操作:

 import qq
 intents = qq.Intents.default()
 intents.guilds = False

 # 其他地方:
 # client = qq.Client(intents=intents)
 # or
 # from qq.ext import commands
 # bot = commands.Bot(command_prefix='!', intents=intents)

请注意,这不会启用 Intents.audio,因为它是一个需要申请的意图。

另一个示例显示一个仅处理 MessageGuild 信息的机器人:

 import qq
 intents = qq.Intents(messages=True, guilds=True)

 # 其他地方:
 # client = qq.Client(intents=intents)
 # or
 # from qq.ext import commands
 # bot = commands.Bot(command_prefix='!', intents=intents)

特权 Intent

随着 API 要求机器人作者指定意图,一些意图受到进一步限制,需要更多的手动步骤。这些意图被称为需要申请的意图。

需要申请的意图是一种需要你转到开发人员频道并手动申请的意图。

注解

即使你通过到开发人员频道启用意图,你仍然必须通过代码启用意图。