使Discord bot使用NodeJS发送带有消息的图片

Kai*_*Kid 3 javascript node.js discord

我有几张图片,全部在imgur上,带有直接图像链接(格式:https ://i.imgur.com/XXXXXX.jpg ),以及由NodeJS制作的Discord机器人。

我发送这样的消息:

bot.sendMessage({
    to: channelID,
    message: "My Bot's message"
});
Run Code Online (Sandbox Code Playgroud)

我已经试过了:

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

但我只得到文字。我已经查了一下,这个问题是唯一一个接近说我需要做的问题,而且没有用。

那我应该怎么做呢?

机器人的创建方法如下:

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
}
Run Code Online (Sandbox Code Playgroud)

小智 6

您可以像这样在 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');
Run Code Online (Sandbox Code Playgroud)


小智 5

ClientUser.sendMessage不推荐使用file其选项中的参数也不推荐使用。您应该使用Channel.send(message, options)with files作为字符串或FileOptions的数组。

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

如果您想坚持使用不推荐使用的方法,ClientUser.sendFile那么您可能会感兴趣,尽管我确实建议您继续使用最新的方法

  • 只是我想建议的一个编辑。“message”应更改为“messageCreate” (3认同)