【问题标题】:Message Specific PFP. (like TupperBox)消息特定的 PFP。 (如特百宝盒)
【发布时间】:2021-03-02 06:33:24
【问题描述】:

我希望发送与机器人具有不同个人资料图片的消息。基本上,就像 Tupper Bot 一样。我似乎无法弄清楚如何在任何地方做到这一点,我已经阅读了文档并四处搜索。

【问题讨论】:

  • 您也许可以使用 webhook,但这取决于您到底想做什么。
  • 谢谢! Webhook 正是我所需要的!
  • @WorthyAlpaca,您应该将答案放入答案区域。然后可以回答这个问题并给你信用。 ^w^

标签: javascript discord.js


【解决方案1】:

您可以使用 webhook 来执行您描述的操作。如果您已经有一个 webhook 链接,请参阅 here 了解如何使用它。这也适用于外部程序。

如果您不这样做,您可以使用您的机器人创建一个 webhook,然后向它发送消息。在本例中,我们将创建一个简单的 webhook 并向其发送消息。

首先我们应该检查通道是否已经有一个 webhook。这样您就不会在每次使用该命令时都创建一个新的。您可以使用 fetchWebhooks() 函数来执行此操作,如果存在 webhook,该函数将返回一个集合。如果是这种情况,我们将获得集合中的第一个 webhook 并使用它。 注意:如果您有多个 webhook,您当然可以在第一个 webhook 之后添加额外的检查。

如果不存在 webhook,我们使用createWebhook() 创建一个新的。你可以在名字后面加上additional options

let webhook;
let webhookCollection = await message.channel.fetchWebhooks();
if (webhookCollection.first()) {
    webhook = webhookCollection.first();
} else {
    webhook = await message.channel.createWebhook("new webhook", {
        avatar: "https://i.imgur.com/tX5nlQ3.jpeg"
    });
}

注意:在此示例中,我们使用消息来自的频道,但您可以使用任何您想要的频道

从技术上讲,我们现在已经可以发送消息了。

webhook.send("this is a test");

您还可以创建一个webhookClient。这有点像您在启动机器人时创建的不和谐客户端。它需要 webhook ID 和令牌以及您可以为客户端设置的 additional options

const hookclient = new Discord.WebhookClient(webhook.id, webhook.token);

这让您可以使用一些额外的方法,例如setInterval

hookclient.setInterval(() => {
    hookclient.send("This is a timer test");
}, 1000)

这让您可以使用 webhook,而无需先创建或获取一个。

【讨论】:

    猜你喜欢
    • 2011-12-06
    • 2017-12-26
    • 1970-01-01
    • 2021-05-31
    • 2020-09-13
    • 2019-05-27
    • 2018-11-13
    • 2020-06-29
    • 1970-01-01
    相关资源
    最近更新 更多