我正在设计一个应用程序,当我的 python 代码发生问题时(例如,我的网站上有新用户注册),我可以向我的不和谐频道发送通知。这将是一种单向通信,因为只有 python 应用程序会将消息发送到不和谐频道。
这是我试过的。
import os
import discord
import asyncio
TOKEN = ""
GUILD = ""
def sendMessage(message):
client = discord.Client()
@client.event
async def on_ready():
channel = client.get_channel(706554288985473048)
await channel.send(message)
print("done")
return ""
client.run(TOKEN)
print("can you see me?")
if __name__ == '__main__':
sendMessage("abc")
sendMessage("def")
问题是只有第一条消息被发送(即 abc),然后 aysn 函数阻塞了第二个调用(def)。
我不需要监听不和谐事件,也不需要保持网络通信畅通。有什么方法可以让我只发布文本(像我们通常使用的 api 的发布方法)来扰乱服务器而不用监听事件?
谢谢。
原文由 john 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以将消息发送到 Discord webhook。
首先,在您要向其发送消息的 Discord 频道中 创建一个 webhook 。
然后,使用
discord.Webhook.from_url
方法从 Discord 给你的 URL 中获取一个Webhook
对象。最后,使用
discord.Webhook.send
方法使用 webhook 发送消息。如果您使用的是 discord.py 的版本 2,则可以使用以下代码片段:
否则,您可以使用
requests
模块: