简体   繁体   中英

Make Discord bot send picture with message with NodeJS

I have a few pictures, all on imgur with direct image link (format: https://i.imgur.com/XXXXXX.jpg ), and a Discord bot made with NodeJS.

I send messages like this:

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

I have tried this:

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

but I only get the text. I have looked it up, and this question was the only one to even come close to saying what I need to do, and it didn't work.

So how am I supposed to do this?

Here is how the bot is created:

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
}

ClientUser.sendMessage is deprecated , as is the file parameter in its options. You should be using Channel.send(message, options) , with files as an array of strings or FileOptions .

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

If you want to stick to your deprecated methods, ClientUser.sendFile might be something of interest to you, though I do recommend you move over to the stuff that's more current .

You can send local files in v11.2 like this:

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');

If you're using discord.io instead of Discord.js, refer to this syntax:

https://izy521.gitbooks.io/discord-io/content/Methods/Channels.html

I'm still trying to get it to work.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM