Class: Messenger::Bot::Space::StationController
- Inherits:
-
MessengerBotController
- Object
- MessengerBotController
- Messenger::Bot::Space::StationController
- Defined in:
- lib/messenger/bot/station.rb
Instance Method Summary collapse
Instance Method Details
#authenticate ⇒ Object
38 39 40 41 42 |
# File 'lib/messenger/bot/station.rb', line 38 def authenticate return true if Messenger::Bot::Config.secret_token.nil? signature = "sha1=" + OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha1'), Messenger::Bot::Config.secret_token, request.body.read) return render(body: "Error, Signatures didn't match", status: 500) unless Rack::Utils.secure_compare(signature, request.env['HTTP_X_HUB_SIGNATURE']) end |
#receive ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/messenger/bot/station.rb', line 13 def receive Messenger::Bot::Receiver.share(params) params["entry"].each do |entry| messaging_events = entry["messaging"] messaging_events.each_with_index do |event, key| sender = Messenger::Bot::Transmitter.new(event["sender"]["id"]) if event["message"] && !defined?().nil? && event["message"]["quick_reply"].nil? send(:message, event, sender) elsif (event["postback"] && !defined?(postback).nil?) || (event["message"] && event["message"]["quick_reply"].present?) if event["message"].present? event["postback"] = event["message"]["quick_reply"] send(:postback, event, sender) else send(:postback, event, sender) end elsif event["delivery"] && !defined?(delivery).nil? send(:delivery, event, sender) elsif event["optin"] send(:optin, event, sender) end end end render body: "ok" end |
#validation ⇒ Object
6 7 8 9 10 11 |
# File 'lib/messenger/bot/station.rb', line 6 def validation if params["hub.verify_token"] === Messenger::Bot::Config.validation_token return render json: params["hub.challenge"] end render body: "Error, wrong validation token" end |