javascript 有没有可能从一个网站运行一个不和谐的机器人命令

q0qdq0h2  于 2023-02-21  发布在  Java
关注(0)|答案(2)|浏览(109)

所以我想有一个系统,当某个动作发生在网站上,打开一个支持票在discord服务器上自动。我可以使用任何discord票机器人,将工作。我试图使用webhook与php,并试图让机器人发送命令打开票,但我发现,discord机器人不能运行其他discord机器人命令。我的行动计划应该是什么?
现在我使用的是这个ticket bot,它运行node.js并使用discord.js
如有任何建议,不胜感激。

wn9m85ua

wn9m85ua1#

这个问题有点含糊,我尽量回答。
如果这是你的机器人。
在与Discord Bot相同的应用程序中运行Express服务器,该服务器会监听你张贴票证。你可以在此处了解有关Express的更多信息:https://expressjs.com/en/starter/installing.html

const { Client } = require('discord.js');
const client = new Client();

// Your discord.js BOT code.

const express = require('express');
app.use(express.bodyParser());

app.post('/ticket', async (request, response) => {
  // console.log(request.body);      // the information in your POST request's body
  const guild = await client.guilds.fetch('guild_id');
  guild.channels.create(request.body.ticketName);
});

app.listen(3000);

这是一个快速的模型,可以实现在许多方面,一旦你学会表达你可以找到一种方式,适合您的需要。

如果这不是你的机器人。

除非机器人有API或允许机器人使用其命令,否则您无法在不使用自机器人的情况下执行此操作。(不推荐:https://support.discord.com/hc/en-us/articles/115002192352-Automated-user-accounts-self-bots-

r3i60tvu

r3i60tvu2#

我有一个建议,但用python实现

from server import app
from bot import bot
from dotenv import load_dotenv
import os
import multiprocessing
from gevent.pywsgi import WSGIServer

env_path = os.path.dirname(__file__) + "/.env"
load_dotenv(env_path)

def start_server():
    app.run()

def start_bot():
    token = os.getenv("BOT_TOKEN")
    bot.run(token)

def start_multiprocess():
    bot_thread = multiprocessing.Process(name="bot_thread", target=start_bot)
    server_thread = multiprocessing.Process(name="server_thread", target=start_server)
    bot_thread.start()
    server_thread.start()

def run():
    start_multiprocess()

if __name__ == "__main__":
    run()

假设这个应用程序只是你的普通Flask应用程序,bot是你的常规commands.Bot示例。
如果你运行这个程序,它可以正常工作(一个web服务器和discord,但是可以独立运行),但是有一些缺陷,比如进程不能相互通信,换句话说,你不能从服务器使用bot的函数或变量。为了解决这些限制,你必须进一步研究python的并发包,比如asyincio

相关问题