Discord Bot返回“ HTTPException:错误请求(状态代码:400):无法发送空消息”,尽管我正在发送非空消息

时间:2019-05-11 00:14:29

标签: python http bots discord discord.py

所以我是整个Disord bot场景的新手,我正在尝试将函数返回值从我正在研究的该bot打印到discord服务器中。

我有这个函数,它只返回传入的字符串:

def returnParameter(string):
    return string

,并且当我尝试在不和谐的服务器中将此功能作为对我的机器人的命令调用时 通过输入例如.bot hello world!,将执行以下代码:

@client.command(aliases = ["bot", "BOT"])
async def botFunction(ctx, *, command):
    response = returnParameter(command)
    await ctx.send(print(response))

使用上面的示例,我希望我的不和谐服务器打印出"hello world!" 但是我却得到了这个错误:

Traceback (most recent call last):
  File "/Users/User1/Desktop/Python/venv/lib/python3.7/site-packages/discord/ext/commands/bot.py", line 860, in invoke
    await ctx.command.invoke(ctx)
  File "/Users/User1/Desktop/Python/venv/lib/python3.7/site-packages/discord/ext/commands/core.py", line 698, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "/Users/User1/Desktop/Python/venv/lib/python3.7/site-packages/discord/ext/commands/core.py", line 72, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: HTTPException: BAD REQUEST (status code: 400): Cannot send an empty message

1 个答案:

答案 0 :(得分:0)

两个问题:

  1. 您的函数和您的命令似乎具有相同的名称。您应该给他们使用不同的名称。

  2. print(response)返回None。您应该只做await ctx.send(response)