Wit.ai and Facebook Messenger Integration Example
Fork this repository and clone.
git clone https://github.com/{forked}/Wit-Facebook.git
cd Wit-Facebook
npm install
Go to https://wit.ai/home and create a wit app for you. Read https://wit.ai/docs/quickstart and see a demo at: https://wit.ai/sungkim/weather/stories. Then, go to the setting in your wit app and get the token id.
Test the bot.js with your WIT_TOKEN, and make sure the bot is working.
$WIT_TOKEN=insert_token_here node bot
You can type your text, and see bot's response.
Bot testing mode.
> What is the weather? # your msg
Executing merge action
Executing say with message: Where exactly?
Where exactly? # bot
> In Seoul? # your msg
Executing merge action
Executing action: fetch-weather
Executing say with message: I see it’s sunny in Seoul today!
I see it’s sunny in Seoul today! # bot
>
First you need to make a Facebook Page at https://www.facebook.com/pages/create/?ref_type=pages_browser, since the messenger bot will be connected to your facebook page.
cd Wit-Facebook
heroku create
git push heroku master
Select "Setup Webhooks", and you will see callback URL and verify token. For the callback URL put your Hherokuapp URL + "/webhook". For example, my callback URL is https://fbwitbot.herokuapp.com/webhook.
Type the Verify Token that you set in the Heruku app setting. If you haven't set, the default value is "just_do_it".
Click all items in the Subscription Fields.
curl -X POST "https://graph.facebook.com/v2.6/me/subscribed_apps?access_token=<PAGE_ACCESS_TOKEN>"
You may see:
{"success":true}
Finally, go to the Facebook page you created/selected, and talk to your bot. Enjoy!
npm test
$WIT_TOKEN=insert_token_here node bot
First, run the server
$WIT_TOKEN=insert_token_here node index
In other shell, fire this command:
$curl -X POST -H "Content-Type: application/json" -d @__tests__/msg.json http://localhost:8445/webhook
You will see something like this:
I'm wating for you @8445
Executing merge action
Executing action: fetch-weather
Executing say with message: I see it’s sunny in Hong Kong today!
I see it’s sunny in Hong Kong today!
Oops! An error occurred while forwarding the response to USER_ID : An active access token must be used to query information about the current user.
Waiting for futher messages.
The USER_ID error is OK, but make sure the bot says, "I see it’s sunny in Hong Kong today!".
I reused soruce code and configuration from:
We welcome your comments and PRs!