A Botkit platform connector for Rocket.Chat
This is a work in progress for the two communities to collaborate on to achieve the integration proposed in this issue on the main Rocket.Chat project.
We will follow the guide here to create a module that can be required by Botkit bots as a controller for Rocket.Chat. The outcome will be something like the current Slack integration, which is packaged with Botkit, here.
This work will pair with another project to provide a starter bot, implimenting this connector. The starter bot will provide most of the documentation. e.g Similar to botkit-start-slack, problably a botkit middleware will be used to build it.
It may also end up being moved to be maintained under the howdyai organisation, depending on what makes sense for the contributors doing most of the maintenance.
The code have some
console.log() and // TO DO: [...] comments, this annotations will not remain when version 1.0 is ready.
Do not forget to see the botkit-starter-rocketchat there the connector is used and the needed configuration is made to make your botkit run in RocketChat.
The RocketChat connector with Botkit it's mainly inside the
RocketChatBot.js file. The image bellow exemply the configuration inside it:
External applicationit's the application that's make use of the connector to make the needed configuration, like the botkit-starter-rocketchat.
In yellow are the imports, Botkit
controller.startBot()make the connection with RocketChat using SDK and send a simple message to the channel.
After the connection is made, the function
controller.defineBot()using some configurations.
controller.defineBot()Defines some importants functions like
Every message that's appers in the RocketChat side is sent using
bot.reply()is used to reply messages.
To make all things work, it's needed pass throught some
middlewares, this is a pipeline from
CoreBot.jsto configure the message and others things.