module Facebook::Messenger::Incoming
Module Incoming
parses and abstracts incoming requests from Messenger
.
Constants
- EVENTS
@return [Hash] Hash containing facebook messenger events and its event
handler classes.
Public Class Methods
parse(payload)
click to toggle source
Parse the given payload and create new object of class related
to event in payload.
@see developers.facebook.com/docs/messenger-platform/webhook-reference
@raise [Facebook::Messenger::Incoming::UnknownPayload] if event is not
registered in EVENTS constant
@param [Hash] payload A Hash describing a payload from Facebook
.
# File lib/facebook/messenger/incoming.rb, line 53 def self.parse(payload) return MessageEcho.new(payload) if payload_is_echo?(payload) EVENTS.each do |event, klass| return klass.new(payload) if payload.key?(event) end raise UnknownPayload, payload end
payload_is_echo?(payload)
click to toggle source
Check if event is echo.
@param [Hash] payload Request payload from facebook.
@return [Boolean] If event is echo return true else false.
# File lib/facebook/messenger/incoming.rb, line 70 def self.payload_is_echo?(payload) payload.key?('message') && payload['message']['is_echo'] == true end