我的代码偶尔使用此命令获得400错误请求错误:
@owner_only
async def cmd_bootybomb(self, user_mentions, channel):
userid = (str(user_mentions))
await self.send_message(discord.Object(id = userid), bootybomb)
变量bootybomb
已从另一个文件导入,该文件只是一组设置为一个变量的链接。
我得到的错误是:
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)
为什么会发生这种情况以及如何解决?
答案 0 :(得分:2)
由于您正在使用discord api,如果您阅读了send_message的说明,如果您发送的邮件超过2000个chrs,则discord会引发400请求错误。因为Discord的字符限制是2000.正如你所看到的,它实际上不是一个真正的错误,discord.errors.HTTPException:BAD REQUEST(状态代码:400)。这是discord API的自定义错误。
client.send_message: 引发:HTTPException - 发送消息失败。
前一段时间我也问过这个问题的支持,这就是他们给我的解释。基本上,你必须将你的信息的字符保持在2000年以下。
这是此问题的最常见原因。但是如果问题仍然存在,那么解决此问题的最佳方法是在discord中加入discord.py API的支持服务器,并告诉他们您的问题。因为它主要是API问题,而不是python问题。