我不知道为啥我在发送不和谐的 webhook 时收到 400 bad request 错误。一切似乎都很好,但我对此很陌生

Posted

技术标签:

【中文标题】我不知道为啥我在发送不和谐的 webhook 时收到 400 bad request 错误。一切似乎都很好,但我对此很陌生【英文标题】:I dont know why I get a 400 bad request error for sending a discord webhook. Everything seems fine but I am new at this我不知道为什么我在发送不和谐的 webhook 时收到 400 bad request 错误。一切似乎都很好,但我对此很陌生 【发布时间】:2019-12-16 16:14:14 【问题描述】:

我是新手,所以这可能是一个愚蠢的错误

我正在尝试制作一个程序,将股票报价的价格作为 webhook 发送到不和谐。

webhook 不发送。但是,当我执行 print(symbol.json()["Global Quote"]) 时,我得到了所有信息。

我认为“Content-Type”存在问题:“application/json”,但我不确定如何解决。

这是一个sn-p:

webhook = 'https://discordapp.com/api/webhooks/609119785015312414/HOkHGPWqfPfLJHpSp15XZ9dUNhUDly_DKQ8OwLgk3Rw0-4G08gx0mOrKN3FKhompb5ig'
session = requests.session()
symbol = session.get("https://www.alphavantage.co/query?function=GLOBAL_QUOTE&symbol=AAPL&apikey=F4RV85MVA2M2YTIY")

data = 
data["content"] = symbol.json()["Global Quote"]
data["username"] = "AAPL"

result = requests.post(webhook, data=json.dumps(data), headers="Content-Type": "application/json")

try:
  result.raise_for_status()
except requests.exceptions.HTTPError as err:
  print(err)
else:
  print("Payload delivered successfully, code .".format(result.status_code))

输出是:400 Client Error: BAD REQUEST for url: https://discordapp.com/api/webhooks/609119785015312414/HOkHGPWqfPfLJHpSp15XZ9dUNhUDly_DKQ8OwLgk3Rw0-4G08gx0mOrKN3FKhompb5ig

顺便说一句 - 我在发布之前删除了 webhook

【问题讨论】:

删除try 块以检查控制台中是否有任何错误。另外,确保 data["content"] 是一个字符串。 您可能会使用 dhooks 包获得更多成功,它是 Discord Webhooks 的专门 API 包装器。它还允许您使用 discord.py Embed 对象发送嵌入。 【参考方案1】:

您的代码存在一个问题。 Webhook 运行正常。

data["content"] = symbol.json()["Global Quote"]

data["content"] 是一个字典,而它需要是一个字符串

你必须把它转换成一个字符串

有两种方法可以解决这个问题:-

第一种使用 json 的方法 -

import json

然后将data["content"] = symbol.json()["Global Quote"]这一行编辑为-

data["content"] = json.dumps(symbol.json()["Global Quote"])

第二种方式-

将这一行 data["content"] = symbol.json()["Global Quote"] 编辑为 -

data["content"] = str(symbol.json()["Global Quote"])

【讨论】:

【参考方案2】:

只要做:

from dhooks import Webhook

hook = Webhook("your-webhook")

hook.send("message-here")

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于我不知道为啥我在发送不和谐的 webhook 时收到 400 bad request 错误。一切似乎都很好,但我对此很陌生的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PHP 发送不和谐的 webhook?

如何使用谷歌助手 IFTTT 将 webhook 发送到不和谐

我正在尝试让我的不和谐 webhook 使用按钮发送消息

如何通过 webhook 将 heroku 日志发送到不和谐?

为啥我的频道消息发送代码不起作用?

发送从 webhook 收到的消息的 Discord 机器人