Microsoft Bot Framework is a wrapper for the Microsoft Bot API by Microsoft. It uses Flask to recieve the post messages from Microsoft and Celery to complete Async tasks.
The goal was to create a really simple to use library to enable you to interface with the Microsoft bot framework.
Full Docs can be found here: http://microsoftbotframework.readthedocs.io/
Download and run the simulator from: https://docs.botframework.com/en-us/tools/bot-framework-emulator/
pip install microsoftbotframework
Create a file in the root directory called tasks.py. In the file define a task as follows. More information on the ReplyToActivity object and others can be found at http://microsoftbotframework.readthedocs.io/en/latest/conversationoperations/
from microsoftbotframework import ReplyToActivity
def echo_response(message):
if message["type"] == "message":
ReplyToActivity(fill=message,
text=message["text"]).send()
from microsoftbotframework import MsBot
from tasks import *
bot = MsBot()
bot.add_process(echo_response)
bot.run()
python main.py
By default the app runs at http://localhost:5000/api/messages.
Enter this address in the Enter your endpoint URL header of the emulator.
Start chatting! If you followed the above instructions it should repeat back what you type in.
In order to interact with the Microsoft bot framework you need to have a internet facing https endpoint with a valid certificate. I personally use Heroku to host my bot as it is free and simple to use so I will show how I set it up there but you can host it anywhere as long as you meet the above criteria.
Go to https://dev.botframework.com/bots. Register a bot and generate a 'Microsoft App ID' and 'Microsoft App Secret'. Don't worry about the messaging endpoint as we will create that soon. Create a config.yaml file in the root of your project and place the following information:
other:
app_client_id: <Microsoft App ID>
app_client_secret: <Microsoft App Secret>
Create a file called "Procfile" and add the following.
web: python main.py
Create a file called requirements.txt and add the following.
microsoftbotframework
Create a file called runtime.txt and add the following.
python-3.6.0
Modify main.py to add set the port argument to the environment variable PORT.
from microsoftbotframework import MsBot
from tasks import *
import os
bot = MsBot(port=int(os.environ['PORT']))
bot.add_process(echo_response)
bot.run()
If you haven't yet install git
sudo apt-get install git
Signup for a Heroku account here: https://www.heroku.com/ and create a new app. Follow the instructions to Deploy using Heroku Git
Go back into the Microsoft MyBots tab and update the Messaging Endpoint to be the Domain found in the Heroku settings tab. Make sure you add "/api/messages" at the of the url.
Congratulations you should now be able to chat to your bot on Skype!