首页 > 解决方案 > 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,但它们都无法正常工作。有可能做我正在尝试的事情吗?

标签: pythonflaskasynchronousdiscord.py

解决方案


推荐阅读