私はいくつかの写真を持っていますが、すべて画像に直接リンクしていて(形式: 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
}
_ClientUser.sendMessage
_は非推奨 であり、オプションのfile
パラメータも同様です。文字列の配列としてのfiles
または FileOptions を使用して、Channel.send(message, options)
を使用する必要があります。
_bot.on('message' message => {
message.channel.send("My Bot's message", {files: ["https://i.imgur.com/XxxXxXX.jpg"]});
});
_
廃止されたメソッドを使い続けたい場合は、 _ClientUser.sendFile
_ が興味を引くかもしれませんが、それ以上のものに移動することをお勧めしますcurrent。
次のように、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');
これは2019年のGoogleでの上位の結果の1つなので、discord.ioでファイルをアップロードする方法の新しい方法を追加します
最初に異なるのは、on()
関数がいくつかの追加パラメーターを取ることです。
次に、uploadFile
オブジェクトを受け取るuploadFileOpts
という新しいメソッドがあります。 file
には、ボットファイルからイメージへのローカルパスである文字列を指定できます。
uploadFileOpts = {
to: string,
file: string|Buffer,
filename?: string,
message?: string
}
したがって、ボットスクリプトの横に画像を配置すると、コードは次のようになります。
bot.on('message', function (user, userID, channelID, message, evt) {
bot.uploadFile({
to: channelID,
file: 'myImage.jpg'
});
}
それでもインターネットからそのイメージを取得したい場合は、Buffer
オブジェクトに変換する必要があります。ただし、ファイルをローカルに保存する方が簡単です。