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 +4 -4
- data/README.md +32 -13
- data/example/messenger_bot_controller.rb +7 -3
- data/lib/messenger/bot/receiver.rb +3 -3
- data/lib/messenger/bot/request.rb +36 -0
- data/lib/messenger/bot/station.rb +11 -0
- data/lib/messenger/bot/transmitter.rb +10 -21
- data/lib/messenger/bot/version.rb +1 -1
- data/lib/messenger/bot.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2dae409cac62b02db760b3c3b2161e265c1f2317
|
4
|
+
data.tar.gz: 82cf4b2c1eab2d920f28e28688f05530fdf320e2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 101c19b84ef3defe666a130bccc4a1740c97c9c2e3fc35fd326aadff8b6fba1db4eb3e4fe009e5abdb9a8d7ea89c2bc675f4f86be6929dad7d0d8bce07196222
|
7
|
+
data.tar.gz: f9a9850ba37409f32197b63447065fb03bbebb455b2099ff88d15d4cb3f3079dde04e295a33522133d20a49fda41197ea675bcb4252299392da47eef28887378
|
data/README.md
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
#messenger-bot
|
2
|
-
[](https://travis-ci.org/jun85664396/messenger-bot)
|
2
|
+
[](https://travis-ci.org/jun85664396/messenger-bot-rails)
|
3
3
|
[](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
|
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/
|
33
|
+
# app/controllers/messenger_bot_controller.rb
|
34
34
|
|
35
|
-
|
36
|
-
|
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
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
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
|

|
46
65
|
|
47
66
|
## license
|
@@ -1,10 +1,14 @@
|
|
1
1
|
class MessengerBotController < ActionController::Base
|
2
|
-
|
2
|
+
def message(event, sender)
|
3
|
+
# profile = sender.get_profile
|
3
4
|
sender.reply({ text: "Reply: #{event['message']['text']}" })
|
4
5
|
end
|
5
|
-
|
6
|
+
|
7
|
+
def delivery(event, sender)
|
8
|
+
#BlahBlah
|
6
9
|
end
|
7
|
-
|
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
|
-
@
|
6
|
-
recipient: { id: sender }
|
7
|
-
}
|
5
|
+
@sender_id = sender
|
8
6
|
end
|
9
7
|
|
10
8
|
def reply(data)
|
11
|
-
|
12
|
-
|
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
|
-
|
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
|
data/lib/messenger/bot.rb
CHANGED
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.
|
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-
|
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
|