【discord.py】ver2.0以降でチャンネル内に送信したメッセージをBOT側から取得する方法(2022年12月23日 更新)
ネットの検索結果上位の記事の多くは旧バージョンでの使い方を紹介しており、このようなコードを紹介していると思います。
import discord
TOKEN = Discord TOKEN
CHANNELID = Channel ID
client = discord.Client()
@client.event
async def on_ready():
print('Startup Success!!!')
@client.event
async def on_message(message):
if not message.author.bot:
if message.content == 'はじめまして':
await message.channel.send('よろしくおねがいします')
client.run(TOKEN)
しかしこのコードを実行してみると、このようなエラーが発生します。
Traceback (most recent call last):
File "c:\-省略-\main.py", line 6, in <module>
client = discord.Client()
TypeError: __init__() missing 1 required keyword-only argument: 'intents'
要は「intents」というものが必要らしい。
僕の解釈ではintentsは「discord.pyで使いたい機能を追加する拡張機能みたいなもの」だと思っています。
で、intentsの使い方を紹介しているサイト通りコードを入力して実行すると…
import discord
TOKEN = Discord TOKEN
CHANNELID = Channel ID
client = discord.Client(intents=discord.Intents.all())
@client.event
async def on_ready():
print('Startup Success!!!')
@client.event
async def on_message(message):
if not message.author.bot:
if message.content == 'はじめまして':
await message.channel.send('よろしくおねがいします')
client.run(TOKEN)
無事エラーも発生せず起動でき「はじめまして」と入力すると「よろしくおねがいします」とBOTが返してくれました。
この記事が気に入ったらサポートをしてみませんか?