messenger-bot 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 12819752ff7e4128157a48aaa8c41ee6bc2e153a
4
- data.tar.gz: ef7b9d2b2212c79a6324e0a9322c345ce4231e9c
3
+ metadata.gz: 2dae409cac62b02db760b3c3b2161e265c1f2317
4
+ data.tar.gz: 82cf4b2c1eab2d920f28e28688f05530fdf320e2
5
5
  SHA512:
6
- metadata.gz: 1e38025d71e842936da135171b9c26b7898d16f8c46d2d984423e2f99125883a34c855756555a697d433d659d3bfea4738dd064dd7cfb86bcf834b82c3b3f323
7
- data.tar.gz: b770ae35527d61dba1e62e1b7430af23f05146b81cb0a1c9aa1d27a19df4bbd70e83e1626b88c30ada0a54a7e3d02a5fbe0c84e95d3dcba5344c7afe23fa1f32
6
+ metadata.gz: 101c19b84ef3defe666a130bccc4a1740c97c9c2e3fc35fd326aadff8b6fba1db4eb3e4fe009e5abdb9a8d7ea89c2bc675f4f86be6929dad7d0d8bce07196222
7
+ data.tar.gz: f9a9850ba37409f32197b63447065fb03bbebb455b2099ff88d15d4cb3f3079dde04e295a33522133d20a49fda41197ea675bcb4252299392da47eef28887378
data/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  #messenger-bot
2
- [![Build Status](https://travis-ci.org/jun85664396/messenger-bot.svg?branch=master)](https://travis-ci.org/jun85664396/messenger-bot)
2
+ [![Build Status](https://travis-ci.org/jun85664396/messenger-bot-rails.svg?branch=master)](https://travis-ci.org/jun85664396/messenger-bot-rails)
3
3
  [![Gem Version](https://badge.fury.io/rb/messenger-bot.svg)](https://badge.fury.io/rb/messenger-bot)
4
4
 
5
5
  Ruby on Rails client!! for [Facebook Messenger Platform](https://developers.facebook.com/docs/messenger-platform)
6
6
 
7
- Requires Rails >= 4.2.0
7
+ Requires Rails >= 4
8
8
 
9
9
  ##Installation
10
10
 
@@ -28,20 +28,39 @@ Bundler in your Gemfile.
28
28
 
29
29
  ##Example
30
30
 
31
- [Example](https://github.com/jun85664396/messenger-bot/blob/master/example/messenger_bot_controller.rb)
31
+ [Example](https://github.com/jun85664396/messenger-bot-rails/blob/master/example/messenger_bot_controller.rb)
32
32
 
33
- # app/controllers/application_controller.rb
33
+ # app/controllers/messenger_bot_controller.rb
34
34
 
35
- Messenger::Bot.on("message") do |event, sender|
36
- sender.reply({ text: "Reply: #{event['message']['text']}" })
35
+ class MessengerBotController < ActionController::Base
36
+ def message(event, sender)
37
+ # profile = sender.get_profile
38
+ sender.reply({ text: "Reply: #{event['message']['text']}" })
39
+ end
40
+
41
+ def delivery(event, sender)
42
+ #BlahBlah
43
+ end
44
+
45
+ def postback(event, sender)
46
+ #BlahBlah
47
+ end
37
48
  end
38
- Messenger::Bot.on("delivery") do |event, sender|
39
- #BlahBlah
40
- end
41
- Messenger::Bot.on("postback") do |event, sender|
42
- #BlahBlah
43
- end
44
-
49
+
50
+ ##Usage
51
+
52
+ ###message(event, sender)
53
+ * `event` - Hash containing the message event from Facebook [format](https://developers.facebook.com/docs/messenger-platform/webhook-reference#received_message)
54
+ * `sender` - Class to call the 'reply, get_profile' method.
55
+
56
+ ###delivery(event, sender)
57
+ * `event` - Hash containing the delivery event from Facebook [format](https://developers.facebook.com/docs/messenger-platform/webhook-reference#message_delivery)
58
+ * `sender` - Class to call the 'reply, get_profile' method.
59
+
60
+ ###postback(event, sender)
61
+ * `event` - Hash containing the postback event from Facebook [format](https://developers.facebook.com/docs/messenger-platform/webhook-reference#postback)
62
+ * `sender` - Class to call the 'reply, get_profile' method.
63
+
45
64
  ![Ex](https://camo.githubusercontent.com/2452b2ca2f748f2695e545c5c14e70356df5d673/68747470733a2f2f692e696d6775722e636f6d2f59544d4f5967362e676966)
46
65
 
47
66
  ## license
@@ -1,10 +1,14 @@
1
1
  class MessengerBotController < ActionController::Base
2
- Messenger::Bot.on("message") do |event, sender|
2
+ def message(event, sender)
3
+ # profile = sender.get_profile
3
4
  sender.reply({ text: "Reply: #{event['message']['text']}" })
4
5
  end
5
- Messenger::Bot.on("delivery") do |event, sender|
6
+
7
+ def delivery(event, sender)
8
+ #BlahBlah
6
9
  end
7
- Messenger::Bot.on("postback") do |event, sender|
10
+
11
+ def postback(event, sender)
8
12
  #BlahBlah
9
13
  end
10
14
  end
@@ -4,11 +4,11 @@ module Messenger
4
4
  def self.share(data)
5
5
  messaging_events = data["entry"].first["messaging"]
6
6
  messaging_events.each_with_index do |event, key|
7
- if event["message"]
7
+ if event["message"] && !defined?(message).nil?
8
8
  self.class.send(:message, event)
9
- elsif event["postback"]
9
+ elsif event["postback"] && !defined?(postback).nil?
10
10
  self.class.send(:postback, event)
11
- elsif event["delivery"]
11
+ elsif event["delivery"] && !defined?(delivery).nil?
12
12
  self.class.send(:delivery, event)
13
13
  end
14
14
  end
@@ -0,0 +1,36 @@
1
+ module Messenger
2
+ module Bot
3
+ class Request
4
+ def self.post(url, data)
5
+ url = URI.parse(url)
6
+ http = Net::HTTP.new(url.host, 443)
7
+ http.use_ssl = true
8
+ begin
9
+ request = Net::HTTP::Post.new(url.request_uri)
10
+ request["Content-Type"] = "application/json"
11
+ request.body = data.to_json
12
+ response = http.request(request)
13
+ body = JSON(response.body)
14
+ return { ret: body["error"].nil?, body: body }
15
+ rescue => e
16
+ raise e
17
+ end
18
+ end
19
+
20
+ def self.get(url, data = {})
21
+ url = URI.parse(url)
22
+ http = Net::HTTP.new(url.host, 443)
23
+ http.use_ssl = true
24
+ begin
25
+ request = Net::HTTP::Get.new(url.request_uri)
26
+ request["Content-Type"] = "application/json"
27
+ response = http.request(request)
28
+ body = JSON(response.body)
29
+ return { ret: body["error"].nil?, body: body }
30
+ rescue => e
31
+ raise e
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -10,6 +10,17 @@ module Messenger
10
10
 
11
11
  def receive
12
12
  Messenger::Bot::Receiver.share(params)
13
+ messaging_events = params["entry"].first["messaging"]
14
+ messaging_events.each_with_index do |event, key|
15
+ sender = Messenger::Bot::Transmitter.new(event["sender"]["id"])
16
+ if event["message"] && !defined?(message).nil?
17
+ send(:message, event, sender)
18
+ elsif event["postback"] && !defined?(postback).nil?
19
+ send(:postback, event, sender)
20
+ elsif event["delivery"] && !defined?(delivery).nil?
21
+ send(:delivery, event, sender)
22
+ end
23
+ end
13
24
  render body: "ok"
14
25
  end
15
26
  end
@@ -2,32 +2,21 @@ module Messenger
2
2
  module Bot
3
3
  class Transmitter
4
4
  def initialize(sender)
5
- @data = {
6
- recipient: { id: sender }
7
- }
5
+ @sender_id = sender
8
6
  end
9
7
 
10
8
  def reply(data)
11
- @data[:message] = data
12
- send_message(@data)
9
+ data = {
10
+ recipient: {
11
+ id: @sender_id
12
+ },
13
+ message: data
14
+ }
15
+ Messenger::Bot::Request.post("https://graph.facebook.com/v2.6/me/messages?access_token=#{Messenger::Bot::Config.access_token}", data)
13
16
  end
14
17
 
15
- private
16
-
17
- def send_message(data)
18
- url = URI.parse("https://graph.facebook.com/v2.6/me/messages?access_token=#{Messenger::Bot::Config.access_token}")
19
- http = Net::HTTP.new(url.host, 443)
20
- http.use_ssl = true
21
- begin
22
- request = Net::HTTP::Post.new(url.request_uri)
23
- request["Content-Type"] = "application/json"
24
- request.body = data.to_json
25
- response = http.request(request)
26
- body = JSON(response.body)
27
- return { ret: body["error"].nil?, body: body }
28
- rescue => e
29
- raise e
30
- end
18
+ def get_profile
19
+ Messenger::Bot::Request.get("https://graph.facebook.com/v2.6/#{@sender_id}?fields=first_name,last_name,profile_pic&access_token=#{Messenger::Bot::Config.access_token}")
31
20
  end
32
21
  end
33
22
  end
@@ -1,5 +1,5 @@
1
1
  module Messenger
2
2
  module Bot
3
- VERSION = "0.1.6"
3
+ VERSION = "0.1.7"
4
4
  end
5
5
  end
data/lib/messenger/bot.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require "messenger/bot/version"
2
2
  require "messenger/bot/config"
3
+ require "messenger/bot/request"
3
4
  require "messenger/bot/transmitter"
4
5
  require "messenger/bot/receiver"
5
6
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: messenger-bot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - JunSangPil
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-04-16 00:00:00.000000000 Z
11
+ date: 2016-04-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -73,6 +73,7 @@ files:
73
73
  - lib/messenger/bot.rb
74
74
  - lib/messenger/bot/config.rb
75
75
  - lib/messenger/bot/receiver.rb
76
+ - lib/messenger/bot/request.rb
76
77
  - lib/messenger/bot/space.rb
77
78
  - lib/messenger/bot/station.rb
78
79
  - lib/messenger/bot/transmitter.rb