【问题标题】:Is there a way to ask a discord bot to do action from an other app有没有办法让不和谐的机器人从其他应用程序执行操作
【发布时间】:2021-09-01 23:02:59
【问题描述】:

我有一个 discord.js 机器人在节点服务器上运行,我希望它执行一些操作(不仅仅是消息,而是所有 api 可能性),当其他应用程序发生在同一服务器上的其他应用程序中时。

有没有办法用http调用机器人?

【问题讨论】:

  • 如果你使用 nodejs,你可以在机器人旁边设置一个节点服务器,这样他就可以进行一些 webhook 操作
  • Webhook 不是只允许您在 Discord API 中发送消息吗?
  • 我的意思是你拥有机器人和一个可以调用的 api。基于 nodejs 和 api 的 bot 都可以使用机器人来执行它需要在不和谐中执行的所有操作
  • 谢谢,但我不知道怎么做。我没有找到从外部通知机器人执行操作的方法

标签: node.js discord.js bots


【解决方案1】:

我不完全确定您要做什么。但... 如果您想设置某种形式的服务器,以便您可以与 发布请求。


const { Client } = require("discord.js");
const Config = require("./config");
const express = require("express");
const cors = require("cors");
const helmet = require("helmet");

// ----
const client = new Client();
var motd = "nothing bro"

const app = express()

//========== EXPRESS HTTP SERVER
app.use(helmet());
app.use(cors());

app.use(express.json());
app.use(express.urlencoded());

app.get("/", (req, res) => {
  res.send("Hello World")
})

app.post("/motd", (req, res) => {
  if (!req.body.motd) return res.status(400).send("missing motd")
  motd = req.body.motd 

  res.send("completed")
})

app.listen(5000, () => {
  console.log("Listening at http://localhost:5000")
})


//========== DISCORD BOT
client.on("ready", () => {
  console.log("Bot Listening")
})

client.on("message", (message) => {
  if (message.author.bot || !message.guild) return;

  // command handler
  if (!message.content.toLowerCase().startsWith(Config.prefix)) return;

  const [command, ...args] = message.content.slice(Config.prefix.length).split(/\s+/g);
  
  if (command == "motd") {
    message.channel.send(motd)
  }
})

client.login(Config.token)

这是一个非常简单的 HTTP 服务器,如果您使用 json 主体项 motdlocalhost:5000/motd 发出 post 请求,它将更改 motd。在 discord bot 上运行 !motd 将输出当前 MOTD

【讨论】:

  • 我在想类似的东西:app.post("/motd", (req, res) => { if (!req.body.motd) return res.status(400).send("missing motd") motd = req.body.motd clientDiscord.doSomething(); res.send("completed") })
  • 是的,这里的代码是你可以做的一个例子。您也可以按照您的建议进行操作,并使用函数与您的客户一起做某事。
猜你喜欢
  • 2023-04-04
  • 2021-06-30
  • 2020-11-19
  • 2018-08-21
  • 2020-12-31
  • 1970-01-01
  • 2019-04-13
  • 2023-02-06
  • 2020-07-21
相关资源
最近更新 更多