1. ホーム
  2. python

[解決済み] discord.errors.HTTPException: 不正なリクエスト (ステータスコード: 400)

2022-02-25 20:43:49

質問

私のコードでは、このコマンドで400 bad requestエラーが発生することがあります。

@owner_only
async def cmd_bootybomb(self, user_mentions, channel):
    userid = (str(user_mentions))
    await self.send_message(discord.Object(id = userid), bootybomb) 

変数 bootybomb は別のファイルからインポートされており、それは単にリンクの束を1つの変数として設定したものです。

というエラーが出ます。

Traceback (most recent call last):
  File "C:\Users\pc\Desktop\Gamefolders\BootyBot\BootyBot\musicbot\bot.py", line 1289, in on_message
    response = await handler(**handler_kwargs)
  File "C:\Users\pc\Desktop\Gamefolders\BootyBot\BootyBot\musicbot\bot.py", line 115, in wrapper
    return await func(self, *args, **kwargs)
  File "C:\Users\pc\Desktop\Gamefolders\BootyBot\BootyBot\musicbot\bot.py", line 877, in cmd_bootybomb
    await self.send_message(discord.Object(id = userid), bootybomb)
  File "C:\Users\pc\AppData\Local\Programs\Python\Python35\lib\site-packages\discord\client.py", line 831, in send_message
    data = yield from self.http.send_message(channel_id, content, guild_id=guild_id, tts=tts)
  File "C:\Users\pc\AppData\Local\Programs\Python\Python35\lib\site-packages\discord\http.py", line 137, in request
    raise HTTPException(r, data)
discord.errors.HTTPException: BAD REQUEST (status code: 400)

なぜこのようなことが起こるのか、どうすれば解決できるのか。

解決方法は?

discordのapiを使っているので、send_messageの説明を読むと、2000chrを超えるメッセージを送信すると、400リクエストエラーになるようです。 その割にはDiscordの文字数制限は2000です。見ての通り、実は本当のエラーではなく、discord.errors.HTTPException: BAD REQUEST (ステータスコード: 400)です。discordのAPIが作ったカスタムエラーです。

<ブロッククオート

client.send_message: Raises: HTTPException - メッセージの送信に失敗しました。

また、この質問に関して、少し前にサポートに問い合わせたところ、その時の説明です。基本的には、メッセージの文字数を2000文字以下にする必要があります。

この問題の最も一般的な理由はこれでした。しかし、あなたの問題が続く場合、この問題を解決する最善の方法は、discordのdiscord.py APIのサポートサーバーに参加し、あなたの問題を伝えることです。これは主にAPIの問題であり、pythonの問題ではありませんから。