当前位置: 首页 > 知识库问答 >
问题:

发送机器人也能访问的频道

宗政功
2023-03-14

我想让我的不和谐机器人返回它在某个公会中可以访问的频道,我正在使用:

for i in guild.categories:
      channel_list = []
      for j in i.channels:
        channel_list.append(f"- {j.name}, {j.id}")

但这将返回公会的所有频道。如何检查机器人是否有读取频道的权限,以便我只能看到机器人被允许看到的频道?

共有1个答案

韦安顺
2023-03-14

我想你在找机器人。获取_all_channels(),如文档中所述:“检索客户端可以“访问”的每个abc.GuildChannel的生成器。”,因此,您无需验证bot是否可以“看到”通道。小心,因为您也可能通过此功能检索语音频道

否则,您仍然可以迭代类别中的所有通道,并使用channel。(guild.me)的权限。查看频道(https://discordpy.readthedocs.io/en/latest/api.html?highlight=me#discord.Guild.me, https://discordpy.readthedocs.io/en/latest/api.html#discord.Permissions.view_channel)如果bot可以看到通道,则返回True,否则返回False

然后,您的代码将是:

for i in guild.categories:
      channel_list = []
      for j in i.channels:
        if j.permissions_for(guild.me).view_channel:
            channel_list.append(f"- {j.name}, {j.id}")
 类似资料:
  • 这不是重复的:| 我添加了一个用于管理goup的新机器人。通过此信息: 我的机器人是管理员 我的机器人隐私被禁用 “启用”-您的机器人只会接收以“/”符号开头或通过用户名提及机器人的消息。“禁用”-您的机器人将接收人们发送到组的所有消息。当前状态是:禁用成功!新状态是:禁用 bot可以读取除其他bot消息外的所有成员!但可以在回复中看到信息。 我的tg api是:https://github.co

  • 问题内容: 我想知道这里是否有人知道如何将NAO机器人音频流传输到python中的远程模块,以及您是否有示例。我想直接在笔记本电脑上获取NAO音频缓冲区以进行处理,因此无需录制和scp或其他操作。 现在我的问题是这样的:aldebaran网站说,为了远程(在我的笔记本电脑上)接收音频,我必须编写一个继承自ALSoundExtractor的模块。事实是,此类未包含在python SDK中,因此,如果

  • 我有两个问题与编程电报机器人的PHP。 问题:当我尝试使用电报API发送更多行的文本时。根据此代码: 我在电报机器人中的文字如下: “这是我的短信。这是新线。” 你能帮我做这个吗? 谢谢你

  • 我正在nodejs中构建一个可以在webhook上运行的电报聊天机器人。目前,bot在聊天中的每条消息都会点击我的webhook URL。对于机器人来说,可以在命令执行时只推送有效负载吗? 因此,我只想在用户执行 /test命令时从聊天中获取有效负载,聊天中的任何其他消息都不应git到我的URL。 #编辑 当前隐私设置 “启用” - 机器人将仅接收以“/”符号开头或按用户名提及机器人的消息。“禁用

  • 我不知道如何使用电报机器人诱导(触发)本地服务器向通道发送消息。 例如,从用户注册并连接电报的网站向用户发送通知。我们假设用户已经开始与bot对话,并准备好接收来自bot的消息。 我有一个单独的服务器,可以使用bot向服务器发送请求,但我不明白如何在这个电报机器人服务器上接收和处理请求。 我正在使用go电报-机器人-api库,此时服务器使用长轮询方法而不是webhooks。所以它通过更新通道接收一

  • 每次机器人被邀请到服务器时,我都想发送一条消息。然后它应该写这样的话:“你好,这是我的不和机器人” 到目前为止,我有这个代码,它不会产生错误,但也不会发送消息。