Gaurav Saini
Gaurav Saini

Reputation: 21

How to use Botkit v4+ with custom express server for Slack bot

For Botkit v0.7.4, a custom express server can be used as follows

module.exports = function(webserver, controller) {
  webserver.post('/slack/receive', function(req, res) {
    res.status(200);
    res.send('ok');
    controller.handleWebhookPayload(req, res);
  });
  return webserver;
}

is something similar available for the latest version also.

Got the above sample from here

So far, I've got this

const adapter: SlackAdapter = new SlackAdapter({
  getTokenForTeam,
  getBotUserByTeam,
  clientId: config.get('slack.clientId'),
  clientSecret: config.get('slack.clientSecret'),
  clientSigningSecret: config.get('slack.signingSecret'),
  scopes: ['bot', 'team:read', 'users:read', 'users:read.email', 'chat:write:bot'],
  redirectUri: config.get('slack.redirectUri')
});
adapter.use(new SlackEventMiddleware());
adapter.use(new SlackMessageTypeMiddleware());
// webserver is an express app - like so - const webserver = express();
const controller = new Botkit({
  adapter,
  webserver,
  webhook_uri: '/slack/receive'
});
controller.ready(() => controller.loadModules('./features'));

How to setup the /slack/receive route so that the challenge verification when activating the events API and all further events emitted from Slack will be handled properly

Upvotes: 2

Views: 280

Answers (0)

Related Questions