Prerequisites
- A Meta developer app (opens in a new tab) that will serve as the primary platform for managing connection between Instagram and Botpress, including the configuration of webhooks and access tokens.
- A Facebook page (opens in a new tab) in which you have the administrator or developer roles. Instagram accounts must be linked to a Facebook page to use the Facebook Graph API.
- An Instagram Professional account (opens in a new tab), necessary to use features specific to Instagram professional accounts.
Setting up the Instagram integration in Botpress
- Go to the Integration Hub (opens in a new tab) in Botpress Cloud (if you don't have the integration installed yet).
- Find and open the Instagram integration then click on the "Install to Bot" button, now go back to your bot settings.
The Instagram integration has the following settings:
- Enabled: Whether Botpress will communicate with Instagram
- Webhook URL: The URL for receiving data in Botpress
- App ID: The ID of your Meta app
- App Secret: The secret of your Meta app
- Verify Token: The token used to verify the webhook requests
- Page ID: The ID of your Facebook page
- Access Token: The access token
Setting up Instagram
Create a Facebook Page
If you do not already have a Facebook page you will need to create one. You can find details on how to create a new Facebook page here (opens in a new tab). To link your chatbot to a pre-existing page, you must have an administrator or developer role.
Create a Meta App
- Log in to your Facebook account and go to the Facebook for Developers website (opens in a new tab).
- Select My Apps from the top menu, and create a new app.
- Select Business as App Type.
- Give a name to your App.
Add Messenger to your Meta App
Messenger is the proxy for Instagram settings, and since is not added by default in your Meta app it must be added manually.
- In the left sidebar of your app dashboard, click on Add Product.
- Look for Messenger and click Set Up.
API version
Botpress can interact with the version 15.0 or higher of the Instagram API. It is not the default version so it must be changed in your app's settings
- Go to your Meta app.
- In the left sidebar, expand the Settings menu and select Advanced.
- In the Upgrade API version section, select v15.0 or higher as the API version.
- Click on Save Changes.
App ID and Secret
- In the left sidebar, expand the Settings menu and select Basic. Here you can find the App ID and App Secret.
- Click on the Show button in the App Secret text box. Copy the App Id and App Secret to your channel configuration.
Page ID and Access Token
- In the left sidebar, expand the Messenger menu and select Instagram Settings
- In the Access Tokens section, click Add or Remove Pages and add your Facebook page.
- Copy the number under you page name and paste it in you Page ID channel configuration.
- Click on Generate Token. Copy this token and paste it in the Access Token channel configuration.
Verify Token
The Verify Token is used by Meta to verify that you are the real owner of the provided webhook.
You can generate any random alphanumerical string for this configuration. Paste it in your Verify Token channel configuration.
Save Configuration
Channel configuration is completed, you can now click Save. It is important to save your configuration in Botpress before updating the webhook in the Meta app settings, otherwise Meta will be unable to validate the webhook URL.
Webhook Configuration
To receive messages from Instagram in your Botpress bot, you will need to setup a webhook.
- Go to your Meta App.
- In the left sidebar, expand the Messenger menu and select Instagram Settings.
- In the Webhooks section, click Add Callback URL.
- Copy and paste the Webhook URL provided in the integration configuration page in Botpress.
- Copy and paste the Verify Token that you generated earlier in the integration configuration page in Botpress.
- Click on Verify and Save. Make sure your channel configuration was saved before doing this step, otherwise the webhook validation will fail.
- Now you will select subscriptions for your webhook. Click on Add Subscriptions, then select
instagram_manage_messages
(if app has been reviewed by Meta),messages
andmessaging_postbacks
. Then click Save.
Note: If you can't find the instagram_manage_messages
subscription in the list above, that's because your app has not been reviewed by Meta yet (see this section). But don't worry, this is not mandatory to test your bot. You can still test it with the messages
and messaging_postbacks
subscriptions.
That's it, you may now start chatting with your bot on Instagram!
Submit your App for Meta Review
When your app is in Development Mode, your bot will work for admins, developers, and testers of the app only. After your app is approved and made public, it will work for the general public.
Read more about the App Review process on the official documentation (opens in a new tab) and find some help if necessary in this Github issue (opens in a new tab).
You can find some troubleshooting in this documentation (opens in a new tab) in case you app get rejected.