我不知道为什么我收到发送不和谐网络钩子的 400 错误请求错误.一切似乎都很好,但我对此很陌生



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

我试图制作一个程序,将股票报价的价格作为网络钩子发送到不和谐。

网络钩子不会发送。但是,当我打印(symbol.json((["全局报价"](时,我得到了所有的信息。

我认为"内容类型"存在问题:"应用程序/json",但我不确定如何解决它。

这是一个片段:

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 客户端错误:错误请求 url:https://discordapp.com/api/webhooks/609119785015312414/HOkHGPWqfPfLJHpSp15XZ9dUNhUDly_DKQ8OwLgk3Rw0-4G08gx0mOrKN3FKhompb5ig

顺便说一句 - 我在发布此内容之前删除了网络钩子

你的代码有一个问题。网络钩子运行正常。

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"])

只需执行以下操作:

from dhooks import Webhook
hook = Webhook("your-webhook")
hook.send("message-here")

相关内容

最新更新