[Node.js request] Discord Webhookでテキスト/画像の送信
ググっても目的のもの(特に画像の送信)が出てこなかったので、作ったコードを公開しておく。
動作確認環境
・Mac OS X(10.14 Mojave)
・Node.js v8.8.0
・npm v5.5.1
・request v2.88.0
コード
例外処理ちゃんとしてない(考えてない)ので実運用時には各自で考慮してください。
const fs = require('fs');
const request = require('request');
class Discord {
constructor (webhookUrl, user) {
this.data = {username: user};
this.session = request.defaults({
url: webhookUrl,
});
}
send (msg, fpath=null) {
this.data["content"] = msg;
if (fpath !== null) {
this.data["file"] = fs.createReadStream(fpath);
}
let r = this.session.post({formData: this.data}, function (error, response, body) {
// コールバック
});
}
mention (msg, fpath=null) {
this.send("@everyone\n" + msg, fpath);
}
}
使用例
Webhook URL、Webhook使用時に発言させるユーザー名をインスタンス生成時に指定。sendとmentionはお好みで使い分け。
const DISCORD_URL = "YourDiscordWebhookURL";
const DISCORD_USER = "YourDiscordUserName";
discord = new Discord(DISCORD_URL, DISCORD_USER);
discord.send("hoge");
discord.send("fuga", "test.png");
discord.mention("hoge");
discord.mention("fuga", "test.png");
注意事項
sleep噛ませる時は、↓のツイートを参考にしてください
参考サイト
おわりに
有料(¥100)にしてるけど、これで内容は全部です。募金してくれる人がいれば、ジュース代としていただけると嬉しい。コードは、インデントくずれが起きたりするようなので、コピペ時には注意してください。
マガジン
コメント用
干し芋
ここから先は
0字
¥ 100
期間限定!Amazon Payで支払うと抽選で
Amazonギフトカード5,000円分が当たる
Amazonギフトカード5,000円分が当たる
サポート頂けると励みになります BTC,BCH: 39kcicufyycWVf8gcGxgsFn2B8Nd7reNUA LTC: LUFGHgdx1qqashDw4WxDcSYQPzd9w9f3iL MONA: MJXExiB7T7FFXKYf9SLqykrtGYDFn3gnaM