如何将heroku回调URL添加到Facebook仪表板?

时间:2017-09-10 20:11:42

标签: webhooks facebook-apps facebook-messenger

我真的很困惑如何在我的facebook仪表板中设置信使。我已经在Heroku上设置了一个node.js应用程序来与facebook API进行通信,并尝试连接到以下回调URL:

https://ancient-dawn-XXXXX.herokuapp.com/webhook/

但是我收到以下错误:

The URL couldn't be validated. Callback verification failed with the following errors: HTTP Status Code = 403; HTTP Message = Forbidden

我的应用的app.js文件包含以下代码:

var express = require("express");
var request = require("request");
var bodyParser = require("body-parser");

var app = express();
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());
app.listen((process.env.PORT || 5000));

// Server index page
app.get("/", function (req, res) {
  res.send("Deployed!");
});

// Facebook Webhook
// Used for verification
app.get("/webhook/", function (req, res) {
  if (req.query["hub.verify_token"] === "process.env.VERIFICATION_TOKEN") {
    console.log("Verified webhook");
    res.status(200).send(req.query["hub.challenge"]);
  } else {
    console.error("Verification failed. The tokens do not match.");
    res.sendStatus(403);
  }
});

当我尝试访问网址https://murmuring-temple-XXXXX.herokuapp.com/webhook/时,我也收到了FORBIDDEN回复。

缺少什么?

1 个答案:

答案 0 :(得分:0)

您正在将req.query [“hub.verify_token”]与字符串“process.env.VERIFICATION_TOKEN”进行比较,而不是将值process.env.VERIFICATION_TOKEN进行比较。

另外,请确保process.env.VERIFICATION_TOKEN的值与您在设置webhook时提供的验证令牌相匹配。