1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

この記事誰得? 私しか得しないニッチな技術で記事投稿!

discord Bot開発 Permission(権限)を確認する方法

Last updated at Posted at 2023-06-11

はじめに

discord Botを開発していて、チャンネルからメッセージが取得できないため、Permissionを取得する方法を調べました。

Permission取得方法

※TOKEN情報は.envなどに持たせて使用してください。

import discord  # DiscordのAPIライブラリをインポートします
import os  # OSの機能にアクセスするためのライブラリをインポートします

# デフォルトのIntentsオブジェクトを取得します。IntentsはDiscordから受け取るイベントのタイプを制御します
intents = discord.Intents.default()
intents.messages = True
intents.guilds = True

# Discordクライアントを初期化します。このクライアントはDiscordサーバーとの通信を処理します
client = discord.Client(intents=intents)

# 環境変数からDiscordのBotトークンを取得します。このトークンはBotをDiscord APIに認証するために使用されます
my_secret = os.environ['TOKEN']

# メッセージが送信された際に、呼び出されます。
@client.event
async def on_message(message):
  # メッセージがギルドからのものかどうかを確認します
  if message.guild is not None:
    permissions = message.channel.permissions_for(message.guild.me)

    # permissionsオブジェクトのすべての属性と値を出力します
    for attr in dir(permissions):
      if not attr.startswith("__"):
        print(f"{attr}: {getattr(permissions, attr)}")

# 取得したBotトークンを使用して、クライアントをDiscordに接続します
client.run(my_secret)



上記のソースを実行して取得したものをきれいにしました。

Permission Value
add_reactions True
administrator False
attach_files True
ban_members False
change_nickname True
connect False
create_instant_invite True
create_private_threads True
create_public_threads True
deafen_members False
embed_links True
external_emojis True
external_stickers True
kick_members False
manage_channels False
manage_emojis False
manage_emojis_and_stickers False
manage_events False
manage_guild False
manage_messages True
manage_nicknames False
manage_permissions False
manage_roles False
manage_threads False
manage_webhooks True
mention_everyone True
moderate_members False
move_members False
mute_members False
read_message_history True
read_messages True
request_to_speak True
send_messages True
send_messages_in_threads True
send_tts_messages False
speak False
use_application_commands True
use_external_emojis True
use_external_stickers True
use_voice_activation False
view_audit_log False
view_channel True
view_guild_insights False

最後に

うまくいかなかったら、Permissionを調べてきましょう

参考

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?