【python】【discord.py】発言のあったスレッドが位置するチャンネルのIDを取得したい

実現したいこと

スレッドで発言があったとき、応答するBotを作りたい。
特定のチャンネルに存在するスレッドで発言したときのみ、応答させたい。
(できれば、権限操作によるメッセージ送信の制限の方法に頼りたくない)
発言のあったスレッドが位置するチャンネルのIDを取得したい。

前提

はじめたての初心者です。
拙い質問ですが、よろしくお願いいたします。

discord.pyでbotを作っています。
質問内容は、[実現したいこと]の内容になります。

実行したことは、以下のソースコードの通りです。
チャンネルIDを、(message.channel.id)で取得しようと試みましたが、失敗しました。

これは追加の質問で、現在必要としていませんが、
チャンネルが存在するカテゴリIDを取得することもできますか?

該当のソースコード

python

1import discord 2 3TOKEN = "Bot's token"4 5client = discord.Client(intents=discord.Intents.all())6 7@client.event8async def on_ready():9 print('Bot is UP and Ready')10 11# 問題のコード12@client.event13async def on_message(message):14 # スレッド以外での発言をはじく15 if type(message.channel) is discord.Thread:16 # Botの発言をはじく17 if message.author == client.user or message.author.bot:18 return19 20 # 特定のチャンネル以外に存在するスレッドでは、Botが発言してほしくない21 if message.channel.id != [発言を許可するチャンネルID]:22 # スレッドIDが取得されてしまうが、スレッドが存在するチャンネルIDが取得したい23 print(f'{message.channel.id}')24 return25 26 await message.channel.send('hello')27 28client.run(TOKEN)

試したこと

公式リファレンスから探そうと試みましたが、
上手く使って見つけることができませんでした。

補足情報(FW/ツールのバージョンなど)

Python 3.11.2
discord.py 2.2.2
powershellで実行しています

コメントを投稿

0 コメント