python - Discord.py - 在同步函数中发送消息
问题描述
我目前正在使用 Flask 和 Discord.py 开发 Python 程序。该程序将从 HTTP GET 请求中获取参数,然后机器人会将它们以消息的形式发送到我的 Discord 服务器中的特定通道。但是,我无法弄清楚每次发送新的 GET 请求时如何发送消息,因为它使用异步函数。我目前的代码是
import os
import discord
from discord.ext.commands import Bot
from flask import Flask, request
from threading import Thread
bot = Bot("!")
messageToSend = ""
recievedMessage = ""
app = Flask('')
@app.route('/')
def home():
return messageToSend
@app.route('/login',methods = ['POST', 'GET'])
def login():
global recievedMessage
if request.method == 'GET':
user = request.args.get('nm')
message = request.args.get('msg')
recievedMessage = f"[{user}]: {message}"
print(recievedMessage)
return user
def run ():
app.run(host='0.0.0.0',port=8080)
def keep_alive():
t = Thread(target=run)
t.start()
@bot.command()
async def send():
message = send_message()
channel = bot.get_channel(852280470384410654)
await channel.send(message)
keep_alive()
bot.run(os.getenv('TOKEN'))
我尝试了其他方法,例如使用 Asyncio,但它们都无法正常工作。有可能做我正在尝试的事情吗?
解决方案
推荐阅读
- javascript - 在函数计时器上返回未定义的 img
- python - Python argparse 的可选位置参数
- mongodb - 将对象属性(字符串)设置为文本索引
- python - Python 3 枚举列表值不支持成员资格测试
- arrays - Fortran 运行时错误:可分配数组的文件结尾
- git - GIT:在意外提交并推送删除文件后,您能否恢复文件的最新工作版本?
- mysql - 如果行存在,则 SQL 运行命令
- spring - Spring Batch - 在使用 FlatFileItemWriter API 写入数据时创建新的唯一 CSV 名称
- c++ - lambda 中的这个 size_t 有什么作用?C++ 代码
- python - 在 Python 中避免嵌套 if else 语句阶梯