我有一个 node.js 代码,我在 cloud9 上运行以进行开发,我想将我的“测试”Facebook 页面信使订阅到该链接,以便将其用于测试\沙盒。
但是当我尝试将 webhook 订阅到我的应用程序正在运行的 Cloud9 链接时,我得到了这个:
我使用的链接是:https: //node-.c9users.io 端口是 8080
如果我在应用程序运行时直接从浏览器导航到该链接 - 我确实会收到响应。为什么FB订阅无法通过?
默认情况下,您需要在 C9 上登录才能看到发布的 URL,因此当 Facebook 尝试注册时,它会收到“登录到 C9 页面”而不是您的应用程序 URL。
要解决此问题,您需要共享运行 webhook 的工作区并将其公开。
转到“窗口->共享”并单击您的应用程序的“公共”复选框。
除了@Roberdam 的回答,我还建议您将 GET 路线设置为如下:
app.get('/', function (req, res) {
console.log(req);
if (req.query['hub.verify_token'] === 'verifycode') {
res.send(req.query['hub.challenge']);
}
res.send('Error, wrong validation token!');
});
其中hub.challenge是您的 webhook 返回的随机生成的值。