Discord Bot 错误:无法向刚启动的协程发送非无值
Posted
技术标签:
【中文标题】Discord Bot 错误:无法向刚启动的协程发送非无值【英文标题】:Discord Bot Error: can't send non-None value to a just-started coroutine 【发布时间】:2021-07-26 04:09:18 【问题描述】:我是 Discord API 的新手。
我正在尝试使用机器人向我的不和谐频道发送消息。我想运行函数“scheduled_run”,以便将消息发送到频道。
下面的代码应该将“剩余”发送到通道,但我收到错误“无法将非无值发送到刚刚启动的协程”
async def get_channel(id):
return
async def scheduled_run():
channel = get_channel(83863944137526xxxx)
await channel.send("Remainder")
if __name__ == "__main__":
loop = get_event_loop()
loop.run_until_complete(scheduled_run())
错误: 回溯(最近一次通话最后): 文件“main.py”,第 83 行,在 loop.run_until_complete(scheduled_run()) 文件“/usr/lib/python3.8/asyncio/base_events.py”,第 616 行,在 run_until_complete 返回future.result() schedule_run 中的文件“main.py”,第 78 行 等待频道。发送(味精) TypeError: can't send non-None value to a just-started coroutine
是否可以在没有用户回复的情况下发送机器人消息?请更正我的代码
【问题讨论】:
您在调用get_channel
之前缺少await
。由于调用async def
创建的协程对象恰好有一个名为send
的方法(与discord 完全无关),这个错误有点神秘。
【参考方案1】:
您必须直接从客户端获取频道:
channel = client.get_channel(83863944137526xxxx)
await channel.send("Remainder")
【讨论】:
client.get_channel 返回 null。请建议其他方式 您定义的不和谐客户端或机器人是什么?就是<name>.get_channel(83863944137526xxxx)
以上是关于Discord Bot 错误:无法向刚启动的协程发送非无值的主要内容,如果未能解决你的问题,请参考以下文章
Discord bot 无法使用线程,卡住错误:必需的位置参数:'ctx'
Heroku discord bot 托管错误 R10(启动超时)-> Web 进程在启动后 60 秒内无法绑定到 $PORT