[Sy] Slack に通知を送る( Incoming Webhooks + Node.js )
2018/02/01
先日 Slack に Incoming Webhooks を使って通知を送るという記事を書きました。今回は同じことを Node.js でやってみます。
以前の記事はこちらです。
⇒ [Sy] Slack に通知を送る( Incoming Webhooks 利用)Node.js で通知を送ってみる
以下のコードを slack.js
として保存しておきます。
const slack = (params) => {
let https = require('https');
let host = 'hooks.slack.com';
let data = JSON.stringify({"text": params['message']});
let options = {
hostname: host,
port: 443,
path: params['path'],
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(data)
}
};
let req = https.request(options, (res) => {
console.log('status code : ' + res.statusCode);
res.setEncoding('utf8');
res.on('data', (d) => {
console.log(d)
});
});
req.on('error', (e) => {
console.error(e)
;});
req.write(data);
req.end();
}
module.exports = slack;
(上記コードは以下に公開しています)
⇒ js-lib/slack.js at master · utano320/js-libslack.js
を別のファイルから require して使います。
例として、 test.js
を以下のように作成します。
const slack = require('./slack');
slack({
path: '/services/TXXXXXXXX/BXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXX',
message: 'Hello Slack!'
});
slack()
に渡すオブジェクトは、
- path : Incoming Webhooks を作成した際のURLの
/services/
以降 - message : 送信するメッセージ
とします。
あとは実行すると、Slack に通知が送られます。
$ node test.js