Facebook Chatbot Webhook - 我为什么要实现get-request?

时间:2017-08-09 15:17:18

标签: facebook facebook-messenger facebook-chatbot

我们目前正在为facebook messenger平台开发我们的第一个聊天机器人。我从这里开始使用快速入门示例: https://developers.facebook.com/docs/messenger-platform/guides/quick-start

一切正常,Bot称我的后端,我可以回复。都好。

但是,从未调用以下GET-Hook:

app.get('/hook/', (req, res) => {
    console.log('GET REQUEST CALLED');
    if (req.query['hub.verify_token'] === FB_VERIFY_TOKEN) {
        res.send(req.query['hub.challenge']);
    } else {
        res.send('Error, wrong validation token');
    }
});

快速入门和完整指南告诉我,我需要代码的和平,但没有人告诉我为什么......

我的问题是:

  • 什么时候应该调用这个webhook?
  • 为什么我的机器人没有这个钩子工作?
  • 不应该以某种方式验证我的后端吗?为什么需要呢?

我想我完全错过了这里的内容:/

编辑: 这是仅在我以编程方式订阅页面时才需要的吗? 目前,我已使用仪表板添加了对页面的订阅。

1 个答案:

答案 0 :(得分:1)

从开发人员面板设置webhook网址时。 Facebook会自动向该端点发送GET请求,并期望您正在验证验证令牌。

此端点是Facebook的验证端点。它承认Facebook不会向可能导致隐私滥用的错误端点发送聊天信息。此外,它还会验证您的端点是否已准备好处理Facebook输入数据。