Facebook Webhooks没有回调

时间:2016-05-05 19:25:40

标签: node.js facebook facebook-graph-api callback webhooks

我需要了解FB Webhooks的工作原理。 我按照指南为新Webhook设置了Facebook Messenger,所有内容都像魅力一样:

我创建了一个GET端点,以便第一次接收API:

router.get('/fb_cb', function(req, res, next) {
    if (req.query['hub.verify_token'] === 'my_token') {
        res.send(req.query['hub.challenge']);
        console.log('fb GET!');
    } else {
        res.send('Error, wrong validation token');    
    }
});

在我的Fb窗格中,我第一次到达此端点,设置页面,让Page Access Token结束设置端点以接收回调:

router.post('/fb_cb', function(req, res, next) {

    console.log('hook');
    messaging_events = req.body.entry[0].messaging;
        for (i = 0; i < messaging_events.length; i++) {
            event = req.body.entry[0].messaging[i];
            sender = event.sender;
            if (event.message && event.message.text) {
                console.log(event.sender.id);
            }
        }
    res.sendStatus(200);
});

一切都没问题,我可以和我的页面聊聊:D

现在我正在尝试为接收用户更新做同样的事情,所以我在Facebook Webhooks中配置了端点,并且没有问题就达到GET端点。 但是,当我执行任何操作(例如发布内容,更改个人状态等)时,我的用户都没有收到任何通知。

这是Graph API检索到的订阅的当前状态:

data: [{
    object: "user",
    callback_url: "https://myapp.com/fb_cb",
    fields: ["about", "about_me", "current_location", "likes", "photos", "pic", "picture", "status", "statuses", "work"],
    active: true
}, {
    object: "page",
    callback_url: "https://myapp.com/fb_messenger_cb",
    fields: ["message_deliveries", "messages", "messaging_optins", "messaging_postbacks"],
    active: true
}, {
    object: "application",
    callback_url: "https://myapp.com/fb_app_cb",
    fields: ["async_requests"],
    active: true
}]

有一种方法可以达到这个效果吗?怎么了?

0 个答案:

没有答案