What should be the Callback URL for integration with FB messenger?

Hi,

I have installed Rasa on one of our servers in a virtual environment. I have configured SSL certificates and we have created a co-domain name. So now I have a URL like this https://co-domain.domain.in/. When I open it in UI it is showing “Hello from Rasa: 1.6.0a1”. However, it doesn’t work, if I specify the same URL in Webhooks Callback URL for integration with Facebook Messenger.

I have not got any error on rasa side but Facebook Messenger not able to verify Callback URL. The Callback URL format is “https://co-domain.domain.in/webhooks/facebook/webhook”.

Please help me to get out of this issue.

Thanks

hi @Bipul - did you use the server quick install script to install Rasa on your server? Or did you manually install rasa? Have you passed all the facebook params via your credentials.yml file? Also, what happens if you manually call curl -XPOST https://co-domain.domain.in/webhooks/facebook/webhook ?

Hi Alan, Thanks for your response.

I have install rasa manually and we have 1.6 version of Rasa. Yes, I have passed all the Facebook params like a page access token, secret, and verify. in the credentail.yml file. Whenever I have tried call curl -XPOST https://co-domain.domain.in/webhooks/facebook/webhook it is showing connection time out.

ok got it, so you’re just running it as a python process. Can you try starting the server with rasa run --debug ? the logs might show what’s going on. URL looks correct.

I have tried starting the server with “rasa run --debug” and got the below output.

I am not getting what is wrong going on here.

I have also tried this command ““rasa run -m models --enable-api --ssl-certificate server.cer.pem --ssl-keyfile server.key.pem --endpoints endpoints.yml --credentials credentials.yml -p 443 -v --debug --log-file coursebot_logs --cors ‘*’”” and got this output

Hi @amn41 , I have tried starting the server with “rasa run --debug” and got the below output.

I am not getting what is wrong going on here.

I have also tried this command ““rasa run -m models --enable-api --ssl-certificate server.cer.pem --ssl-keyfile server.key.pem --endpoints endpoints.yml --credentials credentials.yml -p 443 -v --debug --log-file coursebot_logs --cors ‘*’”” and got this output

hi @Bipul - at the top of your first screenshot there I see what looks like some logs from HTTP requests:

/webhooks/facebook/webhook                            GET

etc.

Can you please share what that output looks like? Also please copy and past the text rather than posting screenshots, that makes it much easier to read (and for others to discover this thread via google search)

Hi @amn41 thanks for still helping me out.

When I run the command “rasa run --debug”. I am getting this log another_log.txt (2.3 KB)

I have did nginx conf on my server. nginx_conf.txt (640 Bytes) for redirect the URL call to rasa.

I have run this command “rasa run -m models --enable-api --endpoints endpoints.yml --credentials credentials.yml -p 5005 -v --debug --log-file coursebotl_logs --cors ‘*’” and got this log file coursebotl_logs.txt (3.0 KB)

Now when I hit the URL “https://codomain.domain.in/webhooks/facebook/webhook” in browser I am getting “failure, invalid token”.

On rasa side I am getting “2021-03-15 14:21:40 WARNING rasa.core.channels.facebook - Invalid fb verify token! Make sure this matches your webhook settings on the facebook app.

Even I am not able to test the CURL command because CURL command is showing “Connection time out”.

I don’t know where I am wrong.

thanks @Bipul - the way the facebook webhook works is that FB first sends a GET request to that endpoint which you have to respond to with the correct response, so they know it’s really you.

All messages are then sent to the same endpoint as a POST request. So it makes sense that you’re getting the warning Invalid fb verify token! Make sure this matches your webhook settings on the facebook app - this is everything working as expected. You can see more docs on that here

However I am confused why you are able to get this response in the browser but a curl command shows a timeout. Do you have a proxy set up on your computer?