class Fb::Messenger::Receiver
handles the incoming fb webhook data
Public Class Methods
config()
click to toggle source
# File lib/fb/messenger/receiver.rb, line 30 def config @_config ||= {} end
configure() { |self| ... }
click to toggle source
# File lib/fb/messenger/receiver.rb, line 22 def configure yield self end
event_type(msg_event)
click to toggle source
# File lib/fb/messenger/receiver.rb, line 34 def event_type(msg_event) return 'message' if msg_event[:message] return 'postback' if msg_event[:postback] return 'delivery' if msg_event[:delivery] end
handle_unsupported_event(msg_event)
click to toggle source
TODO: log this error better
# File lib/fb/messenger/receiver.rb, line 41 def handle_unsupported_event(msg_event) puts ">>> unsupported event: #{msg_event}" end
receive(entries, opts = {})
click to toggle source
expecting params
# File lib/fb/messenger/receiver.rb, line 7 def receive(entries, opts = {}) entries.each do |entry| entry[:messaging].each do |msg_event| event_type = event_type(msg_event) unless event_type handle_unsupported_event(msg_event) next end event_class = event_type.classify event = "Fb::Messenger::Event::#{event_class}".constantize.new(msg_event) config[event_type].call(event, opts) end end end
subscribe(event, subscriber)
click to toggle source
# File lib/fb/messenger/receiver.rb, line 26 def subscribe(event, subscriber) config[event] = subscriber end