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

时间:2017-08-14 23:28:34

标签: javascript node.js discord

我有几张照片,全都是直接图像链接(格式::nth-of-type(4n)),还有一个用NodeJS制作的Discord bot。

我发送这样的信息:

Inspect this | Incoming Calls

我试过这个:

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

但我只收到文字。我查了一下,https://i.imgur.com/XXXXXX.jpg是唯一一个甚至接近说我需要做什么的人,但它没有用。

那么我该怎么做呢?

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

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

4 个答案:

答案 0 :(得分:3)

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

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

如果您想坚持使用已弃用的方法,ClientUser.sendFile可能会引起您的兴趣,但我建议您转移到更多当前的内容。

答案 1 :(得分:2)

您可以在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');

答案 2 :(得分:1)

由于这是2019年google上的最佳搜索结果之一,所以我添加了一种新的方法来使用discord.io上传文件

与众不同的是on()函数接受一些附加参数。

接下来是有一个名为uploadFile的新方法,该方法带有一个uploadFileOpts对象。 file可以使用一个字符串,该字符串是从bot文件到图像的本地路径。

uploadFileOpts = {
  to: string,
  file: string|Buffer,
  filename?: string,
  message?: string
}

因此,如果将图像放置在bot脚本旁边,则代码应如下所示

bot.on('message', function (user, userID, channelID, message, evt) {
 bot.uploadFile({
            to: channelID,
            file: 'myImage.jpg'
        });
}

如果您仍然想从互联网上获取该图像,则需要将其转换为Buffer对象。但是,在本地存储文件更为简单。

答案 3 :(得分:-1)

如果您使用discord.io而不是Discord.js,请参考以下语法:

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

我仍在努力使其正常工作。