In this tutorial we are going to cover how you can automate facebook messenger using Graph API and Python.
The points we will cover in this tutorial are:
- Create our Application — Flask
- Set-up Facebook Messenger webhook inside our application
- Host our application on HTTPS
- Write code for receiving messages from our webhook and send a response back to Facebook
- Add Messenger permissions to our Facebook App, get access tokens
- Test our application
Create our Flask Application
First we create a python project directory and virtual environment, run the following commands on the command line:
mkdir messenger && cd messenger virtualenv messengerenv source messengerenv/bin/activate
Create the files we need to work with:
touch app.py config.py nano app.py
Paste this in to the app.py file:
from flask import Flask, request
app = Flask(__name__)
app.config['SECRET_KEY'] = 'enter-your-secret-key-here'
@app.route('/', methods=["GET", "POST"])
if __name__ == '__main__':
app.run(host='0.0.0.0', port='8888', debug=True)
This is a minimal flask application that will just display the words ‘HOME’ on the home-page.
You can run the application and test that is working:
Then visit localhost:8888 or your-ip-address:8888 (Port 8888).
Set up Facebook Messenger Webhook inside our application
We will be following the start-up tutorial from Facebook Messenger API documentation available here: https://developers.facebook.com/docs/messenger-platform/getting-started/quick-start
Messenger Platform samples for sending and receiving messages. Walk through the Get Started with this code…github.com
Edit your app.py file to look like this to automate facebook messenger:
Host our application on HTTPS
To host the application on HTTPS — you need a hosting service, there is a complete video on youtube you can follow with all the details: Hosting a Python Flask Application on Digital Ocean.
Add Messenger App and Get Page Access Token
We need to get a Facebook application that has the correct messenger permissions and access token to complete the process.
Go to the facebook developer page and create an app. The go to settings > basic and select messenger from the grid of apps. Click set-up to continue.
Select “add new page” and go through the authorisation by logging in to your account and selecting the page you want to use.
Click on generate token — copy it and paste it inside the config.py file. Call the token PAGE_ACCESS_TOKEN inside the config.py file as a string.
Then click the button at the bottom to enter the callback url and verify string. Your webhook app should be up and running by now on a https server for this o work without a problem.
Enter the url — https://your-host-domain/webook and enter the exact same verify token you have inside your app.py file.
Test your application for automating facebook messenger
You can now go to the Facebook Page you connected and test the application, note that the app will not work for any other users other than the owner of the Facebook page and registered developers — until you take your app through the Facebook App Verification Approval Process.