With Botkit you can build bots for Slack, Facebook Messenger, Twilio and other messaging clients. For natural language understanding different services can be used, for example IBM Watson, Api.ai, Wit.ai or Rasa.
Most of the code can be shared for Slack and Facebook Messenger bots. Check out the code on GitHub.
Similarly to my sample Slack bot, the Facebook Messenger bot uses not only text but more sophisticated controls like buttons to provide the best possible user experience. The definitions of these JSON messages are stored in the Watson Conversation dialog via context variables.
This screenshot shows the Facebook Messenger web application.
This screenshot shows the Facebook Messenger mobile app.