Syntax Error.

[Sy] Slack に通知を送る( Incoming Webhooks + Node.js )

2018/02/01

先日 SlackIncoming 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-lib

slack.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