Facebook Messenger API: Trouble setting up a webhook

前端 未结 6 575
说谎
说谎 2020-12-31 03:25

I am trying to set up a web hook for the new Facebook Messenger bot platform on my PHP webserver and am receiving this error:

The URL couldn\'t be val

相关标签:
6条回答
  • 2020-12-31 04:01

    I just resolved this problem by adding '/webhook' in the callback URL...

    0 讨论(0)
  • 2020-12-31 04:04

    If you're running this as a Node.js application, and you're coming from the The Facebook Quickstart Guide mentioned in the question, you'll have to point the webhook URL to [your-server-root]/webhook. Notice this part of the tutorial:

    // Adds support for GET requests to our webhook
    app.get('/webhook', (req, res) => {
        ...
        // Responds with the challenge token from the request
        res.status(200).send(challenge);
    });
    
    0 讨论(0)
  • 2020-12-31 04:06

    I came across a fix. I scrapped my js attempt and created a new php file with the following code:

    <?php
    
    $challenge = $_REQUEST['hub_challenge'];
    $verify_token = $_REQUEST['hub_verify_token'];
    
    if ($verify_token === 'my_token_code') {
    echo $challenge;
    }
    

    I got this code from the first 10 minutes of this video: https://www.facebook.com/marketingdevelopers/videos/883648801749520/

    0 讨论(0)
  • 2020-12-31 04:08

    Not sure if this help, but the query parameters that FB send are with underscore not dot e.g. :

    • hub_verify_token
    • hub_mode
    • hub_challenge

    P.S.

    Sorry, this is valid for PHP

    0 讨论(0)
  • 2020-12-31 04:11

    @shane

    webhook: function(req, res) {
    
       if (req.query['hub.verify_token'] === 'tokentoken') {
          res.send(req.query['hub.challenge']);
       } else {
          res.send('Error, wrong validation token');    
       }
    }
    

    Note sure what exactly you're doing. but this is what I did and it's working.

    I've tested using ngrok server as I don't have a domain name and the callback URL is https://werwrwetwtw.ngrok.io/webhook

    Hope this helps!

    0 讨论(0)
  • 2020-12-31 04:12

    That code is node.js code and should be run on the server not in a <script> tag in your HTML.

    Here's a simple walk through of setting up the messenger bot with node.js: https://github.com/voronianski/simon-le-bottle

    Essentially you need to make sure you have a host that supports node.js applications and run it as such. It will not work inside of HTML.

    0 讨论(0)
提交回复
热议问题