Botkit使ってる時に任意のエンドポイントを生やす

Slack上で動くBotを僕はBotkitを使って実装している

botkit.ai

例えばSlackのSlash Commandを使う時にリクエストの受け口としてBotkitではExpressでwebserverをたてて対応をしている

例えば↓こんな感じ

controller.setupWebserver(process.env.port,function(err,webserver) {
  controller.createWebhookEndpoints(controller.webserver);

  controller.createOauthEndpoints(controller.webserver,function(err,req,res) {
    if (err) {
      res.status(500).send('ERROR: ' + err);
    } else {
      res.send('Success!');
    }
  });
});

これでBotkit側で用意されているwebhook用のエンドポイント、認証用のエンドポイントが使えるようになる
今回はここに任意のエンドポイントを追加したかった
そんな時はsetupWebserverの第二引数で渡すメソッドのwebserverに対して指定することで実現できる

import { Request, Response } from "express";

~~~~

controller.setupWebserver(3100, function(err, webserver) {
  ~~~~
  webserver.get('/health', function(req: Request, res: Response) {
    res.status(200).send("OK")
  });
});