entry.messaging.forEach(event => { if (event.message && !event.message.is_echo) { const sender = event.sender.id // We retrieve the user's current session, or create one if it doesn't exist // This is needed for our bot to figure out the conversation history const sessionId = findOrCreateSession(sender) if (event.message && event.message.quick_reply) { messenger._handleEvent('quickReply', event) } else if (event.message && event.message.text) { // fwd the message to the Wit.ai Bot Engine wit.runActions( sessionId, // the user's current session text, // the user's message sessions[sessionId].context // the user's current session state ).then((context) => { // Our bot did everything it has to do. console.log('Waiting for next user messages') // Updating the user's current session state sessions[sessionId].context = context }) .catch((err) => { console.error('Oops! Got an error from Wit: ', err.stack || err) }) // also handle messages in the server messenger._handleEvent('message', event) } else if (event.message && event.message.attachments) { event.message.attachments.forEach(attachment => { messenger.sendApiMessage(sender, { text: 'Sorry I can only process text messages for now.' }, function (err) { if (err) console.error('Attachment received. unsupported behaviour.') }) // also handle attachments in the server messenger._handleEvent(attachment.type, event) // image, audio, video, file or location }) } else if (event.optin) { messenger._handleEvent('authentication', event) } else if (event.delivery) { messenger._handleEvent('delivery', event) } else if (event.postback) { messenger._handleEvent('postback', event) } else if (event.read) { messenger._handleEvent('read', event) } else if (event.account_linking && event.account_linking.status === 'linked') { messenger._handleEvent('accountLinked', event) } else if (event.account_linking && event.account_linking.status === 'unlinked') { messenger._handleEvent('accountUnlinked', event) } else { console.error('Webhook received an unknown messaging event: ', JSON.stringify(event)) } } else { messenger._handleEvent('echoMessage', event) } })
event.message.attachments.forEach(attachment => { messenger.sendApiMessage(sender, { text: 'Sorry I can only process text messages for now.' }, function (err) { if (err) console.error('Attachment received. unsupported behaviour.') }) // also handle attachments in the server messenger._handleEvent(attachment.type, event) // image, audio, video, file or location })