facebook-messenger 0.13.0 → 1.0.0
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 +26 -4
- data/lib/facebook/messenger/bot.rb +8 -1
- data/lib/facebook/messenger/incoming.rb +9 -1
- data/lib/facebook/messenger/incoming/message_echo.rb +10 -0
- data/lib/facebook/messenger/version.rb +1 -1
- 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: d44d493f7a90af8ada14c7bdcece0b54fa033abf
|
4
|
+
data.tar.gz: 5299267b035cda79e916beb6752fc736c9ec9853
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5707bbee02a68b2bf370d841d8644c7b6bdd2acadbcc93083c0c76743d337e1aad126c731a2374a92b064e233a4bd8e1f02df7d1f958700ea81c084b04ccff63
|
7
|
+
data.tar.gz: 4db0e0fcd018f909478a98162275bbc91691a81ac1c40106ecec4eb0c2f4e276b16c1598713e6fbfcbadb580b212f2fa85266f1e66e4ca551749b7b6a9244909
|
data/README.md
CHANGED
@@ -158,6 +158,24 @@ Bot.on :message do |message|
|
|
158
158
|
end
|
159
159
|
```
|
160
160
|
|
161
|
+
##### Record messages
|
162
|
+
|
163
|
+
You can keep track of messages sent to the human:
|
164
|
+
|
165
|
+
```ruby
|
166
|
+
Bot.on :message_echo do |message_echo|
|
167
|
+
message_echo.id # => 'mid.1457764197618:41d102a3e1ae206a38'
|
168
|
+
message_echo.sender # => { 'id' => '1008372609250235' }
|
169
|
+
message_echo.seq # => 73
|
170
|
+
message_echo.sent_at # => 2016-04-22 21:30:36 +0200
|
171
|
+
message_echo.text # => 'Hello, bot!'
|
172
|
+
message_echo.attachments # => [ { 'type' => 'image', 'payload' => { 'url' => 'https://www.example.com/1.jpg' } } ]
|
173
|
+
|
174
|
+
# Log or store in your storage method of choice.
|
175
|
+
end
|
176
|
+
```
|
177
|
+
|
178
|
+
|
161
179
|
#### Send to Facebook
|
162
180
|
|
163
181
|
When the human clicks the [Send to Messenger button][send-to-messenger-plugin]
|
@@ -287,9 +305,6 @@ Facebook::Messenger::Profile.set({
|
|
287
305
|
Follow the [Quick Start][quick-start] guide to create an Application on
|
288
306
|
Facebook.
|
289
307
|
|
290
|
-
*Note*: Don't subscribe to `message_echoes`; it'll echo your bot's own messages
|
291
|
-
back to you, effectively DDOSing yourself.
|
292
|
-
|
293
308
|
[quick-start]: https://developers.facebook.com/docs/messenger-platform/guides/quick-start
|
294
309
|
|
295
310
|
### Make a configuration provider
|
@@ -342,6 +357,11 @@ from Facebook:
|
|
342
357
|
Facebook::Messenger::Subscriptions.subscribe(access_token: access_token)
|
343
358
|
```
|
344
359
|
|
360
|
+
You only need to subscribe your page once. As long as your bot works and
|
361
|
+
responds to Messenger's requests in a timely fashion it will remain
|
362
|
+
subscribed, but if your bot crashes or otherwise becomes unavailable Messenger
|
363
|
+
may unsubscribe it and you'll have to subscribe again.
|
364
|
+
|
345
365
|
### Run it
|
346
366
|
|
347
367
|
##### ... on Rack
|
@@ -401,7 +421,7 @@ unless Rails.env.production?
|
|
401
421
|
bot_files.each{ |file| require_dependency file }
|
402
422
|
end
|
403
423
|
|
404
|
-
|
424
|
+
ActiveSupport::Reloader.to_prepare do
|
405
425
|
bot_reloader.execute_if_updated
|
406
426
|
end
|
407
427
|
|
@@ -445,6 +465,8 @@ for Facebook Messenger, and a great place to start if you're new to bots.
|
|
445
465
|
* [Chatwoot](http://chatwoot.com/) use Facebook Messenger to integrate their customer
|
446
466
|
support bots with, well, Facebook Messenger.
|
447
467
|
|
468
|
+
* [Botamp](https://botamp.com) is the all-in-one solution for Marketing Automation via messaging apps.
|
469
|
+
|
448
470
|
## Hyper loves you
|
449
471
|
|
450
472
|
[Hyper] made this. We're a bunch of folks who love building things. You should
|
@@ -10,7 +10,14 @@ module Facebook
|
|
10
10
|
base_uri 'https://graph.facebook.com/v2.6/me'
|
11
11
|
|
12
12
|
EVENTS = %i[
|
13
|
-
message
|
13
|
+
message
|
14
|
+
delivery
|
15
|
+
postback
|
16
|
+
optin
|
17
|
+
read
|
18
|
+
account_linking
|
19
|
+
referral
|
20
|
+
message_echo
|
14
21
|
].freeze
|
15
22
|
|
16
23
|
class << self
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'facebook/messenger/incoming/common'
|
2
2
|
require 'facebook/messenger/incoming/message'
|
3
|
+
require 'facebook/messenger/incoming/message_echo'
|
3
4
|
require 'facebook/messenger/incoming/delivery'
|
4
5
|
require 'facebook/messenger/incoming/postback'
|
5
6
|
require 'facebook/messenger/incoming/optin'
|
@@ -19,7 +20,8 @@ module Facebook
|
|
19
20
|
'optin' => Optin,
|
20
21
|
'read' => Read,
|
21
22
|
'account_linking' => AccountLinking,
|
22
|
-
'referral' => Referral
|
23
|
+
'referral' => Referral,
|
24
|
+
'message_echo' => MessageEcho
|
23
25
|
}.freeze
|
24
26
|
|
25
27
|
# Parse the given payload.
|
@@ -28,6 +30,8 @@ module Facebook
|
|
28
30
|
#
|
29
31
|
# * https://developers.facebook.com/docs/messenger-platform/webhook-reference
|
30
32
|
def self.parse(payload)
|
33
|
+
return MessageEcho.new(payload) if payload_is_echo?(payload)
|
34
|
+
|
31
35
|
EVENTS.each do |event, klass|
|
32
36
|
return klass.new(payload) if payload.key?(event)
|
33
37
|
end
|
@@ -35,6 +39,10 @@ module Facebook
|
|
35
39
|
raise UnknownPayload, payload
|
36
40
|
end
|
37
41
|
|
42
|
+
def self.payload_is_echo?(payload)
|
43
|
+
payload.key?('message') && payload['message']['is_echo'] == true
|
44
|
+
end
|
45
|
+
|
38
46
|
class UnknownPayload < Facebook::Messenger::Error; end
|
39
47
|
end
|
40
48
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: facebook-messenger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Johannes Gorset
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-05-
|
11
|
+
date: 2017-05-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -180,6 +180,7 @@ files:
|
|
180
180
|
- lib/facebook/messenger/incoming/common.rb
|
181
181
|
- lib/facebook/messenger/incoming/delivery.rb
|
182
182
|
- lib/facebook/messenger/incoming/message.rb
|
183
|
+
- lib/facebook/messenger/incoming/message_echo.rb
|
183
184
|
- lib/facebook/messenger/incoming/optin.rb
|
184
185
|
- lib/facebook/messenger/incoming/postback.rb
|
185
186
|
- lib/facebook/messenger/incoming/read.rb
|