質問: f'{channel.id}で{message.author.id}_{client.user}さんが発言しました' await channel.send(msg) # Botの起動とDiscordサーバーへの接続 client.run(TOKEN) ``` ### 試したこと 1 await channel.send(msg) の部分を await message.channel.send(msg) にすると投稿者と同じチャンネルにmsgの内容を投稿することができたのですが、message.がないと上記のエラーが表示されました。 2※message.channel.send(msg)の状態で試しました。 「{channel.id}で」の部分を消すと投稿者と同じチャンネルにですがちゃんと内容が表示されました。 ### 補足情報(FW/ツールのバージョンなど) win10 python 3.8 pycharm Version 2020.3
回答: ``` import discord import re TOKEN = "トークンコード" client = discord.Client() ch_id = 000000000000000000 channel = client.get_channel(ch_id) @client.event async def on_ready(): # 起動したらターミナルにログイン通知が表示される print('ログインしました') # メッセージ受信時に動作する処理 @client.event async def on_message(message): # メッセージ送信者がBotだった場合は無視する if message.author.bot: return #どこかのチャンネルでコメント投稿された場合に特定のチャンネルに通知する if re.match(r".*", message.content): msg = f'{message.channel.id}で{message.author.id}_{message.author.name}さんが発言しました' await client.get_channel(ch_id).send(msg) # Botの起動とDiscordサーバーへの接続 client.run(TOKEN) ``` await channel.send(msg) を await client.get_channel(ch_id).send(msg) に変更。 msg = f'{channel.id}で を msg = f'{message.channel.id} に変更で解決しました。 また、 {client.user} これだと投稿したbotの名前が表示されていたので {message.author.name} に変更しました。