所以我正在制作一个Discord Bot,当一个人在Twitch.tv上线时发布。目前我有一个运行bot的Python程序和一个运行迷你服务器的程序,用于从Twitch服务器(webhook)接收数据。我不确定如何将我从服务器收到的数据传递给discord bot。两个程序必须同时运行。
Discord Bot
import discord
client = discord.Client()
async def goes_live(data):
print(data)
print('Going Live')
msg = '--- has gone live'
await client.send_message(discord.Object(id='---'), msg)
@client.event
async def on_message(message):
if message.author == client.user:
return
message.content = message.content.casefold()
@client.event
async def on_ready():
print('Logged in as')
print(client.user.name)
print(client.user.id)
print('------')
client.run('---')
网络服务器
import web
urls = ('/.*', 'hooks')
app = web.application(urls, globals())
class hooks:
def POST(self):
data = web.data()
print("")
print('DATA RECEIVED:')
print(data)
print("")
return 'OK'
def GET(self):
try:
data = web.input()
data = data['hub.challenge']
print("Hub challenge: ", data)
return data
except KeyError:
return web.BadRequest
if __name__ == '__main__':
app.run()
机器人和迷你服务器是否在同一台机器上运行?在这种情况下,您只需让服务器将文件写入机器人可以访问的位置并定期检查。
如何使用Flask服务器来处理2个程序之间的通信。您可以定义能够获取数据并将其发送到discord脚本的自定义端点。
@app.route('/ep1', methods = ['GET','POST'])
def ep1():
if request.method == 'POST':
#do something for a POST request.
else:
#do something for a GET request.
您可以使用此结构构造侦听更改的内容,然后将其发布到discord bot。在heroku上托管这个服务器也是你可能想要考虑的事情