Example #1
0
      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)
        }
      })
Example #2
0
 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
 })