将数据发送到 Discord webhook
Posted
技术标签:
【中文标题】将数据发送到 Discord webhook【英文标题】:Send data to a Discord webhook 【发布时间】:2018-09-11 09:33:04 【问题描述】:如果不使用 requests 模块,我如何向 Discord webhook 发送消息? 我试过以下代码:
import urllib2
import json
url = 'webhook url'
values = "username": "Bot", "text": "This is a test message."
data = json.dumps(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
the_page = response.read()
这会返回以下错误:
urllib2.HTTPError: HTTP Error 403: Forbidden
【问题讨论】:
这意味着您使用的应用未经授权可以制作任何 webhook。您可能需要在发出任何请求之前获取令牌。 我在制作 webhook 时唯一由 Discord 提供的是 webhook url @SubhrajyotiDas 您尝试的网址是什么? 这是一个不和谐的 webhook url,格式为 discordapp.com/api/webhooks/<server ID>/<...> 【参考方案1】:您的数据不正确 - 根据Discord API documentation,它应该是这样的:
values =
'username': 'Bot',
'content': 'your message here'
请注意content
、file
或embeds
之一是必需的。否则 API 将不会接受您的请求。
【讨论】:
【参考方案2】:我的第一个建议是以下步骤:
-
在所需的 Discord 频道中创建一个 webhook。
使用
discord.Webhook.from_url
方法从 Discord 提供给您的 URL 中获取 Webhook 对象。
使用discord.Webhook.send
方法发送消息。
另一种选择是像这样使用 discord.py (v2):
from discord import SyncWebhook
webhook = SyncWebhook.from_url("url-here")
webhook.send("Hello World")
【讨论】:
【参考方案3】:您可以将消息发送到 Discord webhook。
用这个tutorial创建一个不和谐的网络钩子。
然后,使用 discord.Webhook.from_url
方法从 Discord 提供的 URL 中获取 Webhook 对象。
使用discord.Webhook.send
方法使用webhook
发送消息。
如果你使用的是 discord.py 的第 2 版,这个 sn-p 将为你工作:
from discord import SyncWebhook
webhook = SyncWebhook.from_url("your-url")
webhook.send("Hello")
如果你不使用版本 2,你可以使用这个 sn-p:
import requests
from discord import Webhook, RequestsWebhookAdapter
webhook = Webhook.from_url("youre-url", adapter=RequestsWebhookAdapter())
webhook.send("Hello")
【讨论】:
以上是关于将数据发送到 Discord webhook的主要内容,如果未能解决你的问题,请参考以下文章
使用 XHR 请求将 Discord 嵌入发送到 Webhook
从画布正确获取信息并通过带有 node-fetch 的 webhook 将信息发送到 discord 时出现问题
如何通过 webhook 将 heroku 日志发送到不和谐?
如何向 Discord Webhooks C# 发送 POST 请求