【发布时间】:2021-11-08 14:49:18
【问题描述】:
Discord.py 似乎是围绕一个侦听 on_ready 或 on_message 等事件的机器人设计的。但我想知道是否有任何方法可以创建我的连接,然后在外部发送消息连接。
这个问题和答案非常适合我的需要,除了 webhook 不允许直接向人们发送消息:Discord - Send message only from python app to discord channel (one way communication)
这是完全正常的代码(它可以直接向用户发送消息)
import discord
client = discord.Client()
@client.event
async def on_ready():
the_user = await client.fetch_user(PERSON_ID)
await the_user.send('Hi')
client.run(BOT_TOKEN)
但我的问题是我需要更多的 webhook 设计,我可以在其中做这样的事情(伪代码):
import my_discord_class
client = my_discord_class.connect(TOKEN)
client.send(PERSON_ID, 'Hi')
有什么建议可以解决这个问题吗?基本上我需要发送这些“事件”之外的东西。
【问题讨论】:
-
你可以在任何你有客户端的地方(包括外部事件,例如在任务中)发送消息,就像在齿轮中一样。您想要做的事情无法在同步环境中完成,并且连接后的代码也不会运行,直到机器人的事件循环停止运行。如果您想在事件之外使用任务,则直接使用 HTTP 路由或
client.loop.run_until_complete(your_function())。 -
感谢阿里的回复,但您介意发布一个简单的例子吗?