EGO-LOG

40代2児の父。主にプログラム学習と開発、仮想通貨、メタバース、たまに関係ないことを綴る。

【discord bot】オウム返しに苦労した編

以下のプログラムを実行してみた。

main.py

-----

import discord

TOKEN = 'XXXXXXXXXXXXXXXXXXXXXXXX'
CHANNELID = 999999999999999

Intents = discord.Intents.default()
Intents.members = True
client = discord.Client(intents=Intents)

@client.event
async def on_ready():
    print('ログインしました')

@client.event
async def on_message(message):
    if not message.author.bot:
        channel = client.get_channel(CHANNELID)
        await channel.send(message.content)
        print(message.content)

client.run(TOKEN)

-----

発生したエラーが message.content is empty

メッセージの内容がカラと判定している模様。

試しにメッセージそのものを出力してみると、

-----

<Message id=99999999999999 channel=<TextChannel id=99999999999999 name='一般' position=5 nsfw=False news=False category_id=999999999999> type=<MessageType.default: 0> author=<Member id=9999999999name='egolife' discriminator='9999' bot=False nick=None guild=<Guild id=99999999999name='Cotoneri Community Place' shard_id=0 chunked=True member_count=8>> flags=<MessageFlags value=0>>

-----

本文を持っていない?

 

調査したところ、Discord Developer Portal で設定を変更する必要がある。

 

さらに、main.pyの

-----

client = discord.Client(intents=Intents)

を、

-----

client = discord.Client(intents=discord.Intents.all())

-----

に変更したところ、出力できた。

2時間ぐらいハマりました。。