Facebook 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
}]

Есть способ добиться такого результата? Что не так?


person shaithana    schedule 05.05.2016    source источник
comment
Теперь я пытаюсь сделать то же самое для получения пользовательских обновлений. API-интерфейс чат-бота никогда не предназначался для получения пользовательских обновлений. Я не уверен, что вы можете сделать это с помощью любого API FB, потому что идентификатор пользователя (идентификатор отправителя), который мы получаем в нашем веб-перехватчике, предназначен только для области приложения и полностью отличается от фактического идентификатора пользователя Facebook.   -  person Mukarram Khalid    schedule 06.05.2016
comment
@MukarramKhalid Я знаю, что чат-бот не предназначен для обновлений пользователей, но я пытаюсь использовать веб-перехватчики (раздел непосредственно перед мессенджером на панели инструментов). Итак, какова сфера применения этого Webhooks? Мне нужно воспроизвести функцию, которая связывает FB и Twitter, где сообщение пользователя на Facebook публикуется также и в Twitter… спасибо за любую информацию.   -  person shaithana    schedule 06.05.2016
comment
В настоящее время это единственная информация, которую вы можете получить о пользователе из идентификатора отправителя. Из документов: first_name, last_name, profile_pic, locale, часовой пояс, пол. Дополнительная информация здесь: developers.facebook.com/docs/messenger-platform/ Существует обходной путь, когда вы можете попросить пользователя войти в систему с помощью API входа в FB, чтобы получить фактический идентификатор пользователя, а затем связать два идентификатора на вашем конце. Но это не будет идеальным способом сделать это.   -  person Mukarram Khalid    schedule 06.05.2016
comment
@MukarramKhalid, можете ли вы рассказать больше об обходном пути (может быть, ссылку)?   -  person shaithana    schedule 06.05.2016
comment
Честно говоря. Я еще не видел рабочего примера, но есть некоторые идеи, обсуждаемые по этому вопросу. userid-from-a-facebook-login" title="идентификация пользователя facebook messenger с идентификатором пользователя из входа в facebook"> stackoverflow.com/questions/36598365/ .. Это также отвечает на ваш вопрос .. stackoverflow.com/questions /36832020/   -  person Mukarram Khalid    schedule 06.05.2016