使用 NodeJS 使 Discord 机器人发送带有消息的图片

新手上路,请多包涵

我有几张图片,都在带有直接图片链接的 imgur 上(格式: https ://i.imgur.com/XXXXXX.jpg),还有一个用 NodeJS 制作的 Discord 机器人。

我发送这样的消息:

 bot.sendMessage({
    to: channelID,
    message: "My Bot's message"
});

我试过这个:

 bot.sendMessage({
    to: channelID,
    message: "My Bot's message",
    file: "https://i.imgur.com/XxxXxXX.jpg"
});

但我只得到文本。我查了一下, 这个问题 是唯一一个几乎可以说出我需要做什么的问题,但它没有用。

那我该怎么做呢?

以下是机器人的创建方式:

 var bot = new Discord.Client({
   token: auth.token,
   autorun: true
});
bot.on('ready', function (evt) {
    logger.info('Connected');
    logger.info('Logged in as: ');
    logger.info(bot.username + ' - (' + bot.id + ')');
});
bot.on('message', function (user, userID, channelID, message, evt) {
    // My code
}

原文由 Kaito Kid 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 681
2 个回答

ClientUser.sendMessage 已弃用,其选项中的 file 参数也是如此。您应该使用 Channel.send(message, options)files 作为字符串数组或 FileOptions

 bot.on('messageCreate' message => {
    message.channel.send("My Bot's message", {files: ["https://i.imgur.com/XxxXxXX.jpg"]});
});

如果您想坚持使用已弃用的方法, ClientUser.sendFile 您可能会感兴趣,但我建议您转向更新 方法。

原文由 Kae 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以像这样在 v11.2 中发送本地文件:

 var Discord = require('discord.js');
var bot = new Discord.Client();

bot.on('message', message => {
    var prefix = '!'
    var msg = message.content;

    if (msg === prefix + 'image') {
        message.channel.send('Message that goes above image', {
            files: [
                "./image-to-send.png"
            ]
        });
    }
});

bot.login('TOKEN');

原文由 koubi 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏