我有一個node.js代碼,我在cloud9上運行開發,我想訂閱我的「測試」Facebook頁面信使到該鏈接,以便將其用於測試\沙盒。爲什麼我不能使用Cloud9鏈接訂閱Facebook webhook?
但是當我嘗試訂閱網絡掛接到CLOUD9鏈接我的應用程序上運行,我得到這個:
我使用的鏈接是:https://node- .c9users.io 端口是8080
如果我在應用程序運行時直接從瀏覽器導航到該鏈接 - 我確實收到了回覆。爲什麼FB訂閱無法通過?
我有一個node.js代碼,我在cloud9上運行開發,我想訂閱我的「測試」Facebook頁面信使到該鏈接,以便將其用於測試\沙盒。爲什麼我不能使用Cloud9鏈接訂閱Facebook webhook?
但是當我嘗試訂閱網絡掛接到CLOUD9鏈接我的應用程序上運行,我得到這個:
我使用的鏈接是:https://node- .c9users.io 端口是8080
如果我在應用程序運行時直接從瀏覽器導航到該鏈接 - 我確實收到了回覆。爲什麼FB訂閱無法通過?
默認情況下,您需要在C9上登錄以查看發佈的URL,因此當Facebook嘗試註冊時會收到「登錄到C9頁面」而不是您的應用URL。
要解決此問題,您需要共享您的webhook正在運行的工作區並將其公開。
轉到「窗口 - >共享」並點擊複選框「公共」爲您的應用程序。
除了@Roberdam的答案我會recommande您設置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返回。
您收到回覆,但是您看過檢查員中的網絡選項卡嗎?顯然,在Facebook的口味最終迴應之前,它會重新定向太多次。 – jonrsharpe
@jonrsharpe你是否有機會知道它是否是Cloud9託管應用程序的默認行爲?:( – GeekSince1982
我完全不知道,沒有。 – jonrsharpe