网关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
,因为它是一个需要申请的意图。
另一个示例显示一个仅处理 Message
和 Guild
信息的机器人:
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 要求机器人作者指定意图,一些意图受到进一步限制,需要更多的手动步骤。这些意图被称为需要申请的意图。
需要申请的意图是一种需要你转到开发人员频道并手动申请的意图。
注解
即使你通过到开发人员频道启用意图,你仍然必须通过代码启用意图。