bobot 4.5.0 → 4.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +6 -0
- data/lib/bobot/configuration.rb +1 -1
- data/lib/bobot/graph_facebook.rb +1 -1
- data/lib/bobot/page.rb +57 -0
- data/lib/bobot/version.rb +1 -1
- data/lib/generators/bobot/templates/config/initializers/bobot.rb +12 -7
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6d0dd60ee7828d2dacb7c0bcbaa04a12bd70aa39a08a40ac60742daa16352b54
|
4
|
+
data.tar.gz: 15be7b32a6c8a7d0abfe8a705734f23150f6ec8a2c16de62f421639389fb8980
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ba75b7a08d1bca96c3368ffd372626f66f756fcdb4a749b1dfcdc49b64fb0dc8ef15aefb1863e92ed633f7eaebf6392448d00894f432e17023ad3daf97b5d1d5
|
7
|
+
data.tar.gz: dfe9c462884429707295547ab61a2c22343f220efa9b2a32b552f1d2754e667f9bc5f6e50b9a496a7536f0746094cab0b4306bcdc511be11564b88a4327dcdba
|
data/README.md
CHANGED
@@ -24,6 +24,10 @@ gem 'bobot'
|
|
24
24
|
domains: "whitelisted-domain.com,second-whitelisted-domain.com"
|
25
25
|
async: false
|
26
26
|
commander_queue_name: "default"
|
27
|
+
url_for_chat_extension: "https://whitelisted-domain.com/messenger_extension"
|
28
|
+
size_for_chat_extension: "tall"
|
29
|
+
share_button_for_chat_extension: "show"
|
30
|
+
in_test_for_chat_extension: "true"
|
27
31
|
pages:
|
28
32
|
- slug: "facebook_1"
|
29
33
|
language: "fr"
|
@@ -90,6 +94,8 @@ gem 'bobot'
|
|
90
94
|
- `page.set_get_started_button!`
|
91
95
|
- `page.unset_persistent_menu!`
|
92
96
|
- `page.set_persistent_menu!`
|
97
|
+
- `page.unset_home_url!`
|
98
|
+
- `page.set_home_url!`
|
93
99
|
</p>
|
94
100
|
</details>
|
95
101
|
|
data/lib/bobot/configuration.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module Bobot
|
2
2
|
class Configuration
|
3
|
-
attr_accessor :app_id, :app_secret, :verify_token, :skip_code, :domains, :async, :commander_queue_name, :pages
|
3
|
+
attr_accessor :app_id, :app_secret, :verify_token, :skip_code, :domains, :async, :commander_queue_name, :url_for_chat_extension, :size_for_chat_extension, :share_button_for_chat_extension, :in_test_for_chat_extension, :pages
|
4
4
|
|
5
5
|
def domains=(rhs)
|
6
6
|
if rhs.nil?
|
data/lib/bobot/graph_facebook.rb
CHANGED
@@ -3,7 +3,7 @@ require "uri"
|
|
3
3
|
|
4
4
|
module Bobot
|
5
5
|
module GraphFacebook
|
6
|
-
GRAPH_FB_URL = 'https://graph.facebook.com/v3.
|
6
|
+
GRAPH_FB_URL = 'https://graph.facebook.com/v3.2'.freeze
|
7
7
|
GRAPH_HEADERS = { Accept: "application/json", "Content-Type" => "application/json; charset=utf-8" }.freeze
|
8
8
|
|
9
9
|
module ClassMethods
|
data/lib/bobot/page.rb
CHANGED
@@ -256,6 +256,22 @@ module Bobot
|
|
256
256
|
rescue => e
|
257
257
|
Rails.logger.error(e.message)
|
258
258
|
end
|
259
|
+
if Bobot.config.url_for_chat_extension.present?
|
260
|
+
begin
|
261
|
+
puts "- unset_messenger_extensions_home_url! [....]"
|
262
|
+
unset_messenger_extensions_home_url!
|
263
|
+
puts "- unset_messenger_extensions_home_url! [DONE]"
|
264
|
+
rescue => e
|
265
|
+
Rails.logger.error(e.message)
|
266
|
+
end
|
267
|
+
begin
|
268
|
+
puts "- set_messenger_extensions_home_url! [....]"
|
269
|
+
set_messenger_extensions_home_url!
|
270
|
+
puts "- set_messenger_extensions_home_url! [DONE]"
|
271
|
+
rescue => e
|
272
|
+
Rails.logger.error(e.message)
|
273
|
+
end
|
274
|
+
end
|
259
275
|
end
|
260
276
|
|
261
277
|
def get_facebook_setup
|
@@ -287,6 +303,13 @@ module Bobot
|
|
287
303
|
rescue => e
|
288
304
|
Rails.logger.error(e.message)
|
289
305
|
end
|
306
|
+
begin
|
307
|
+
puts "- get_messenger_extensions_home_url [....]"
|
308
|
+
puts get_messenger_extensions_home_url.inspect
|
309
|
+
puts "- get_messenger_extensions_home_url [DONE]"
|
310
|
+
rescue => e
|
311
|
+
Rails.logger.error(e.message)
|
312
|
+
end
|
290
313
|
end
|
291
314
|
|
292
315
|
## == Set bot description (only displayed on first time). ==
|
@@ -458,5 +481,39 @@ module Bobot
|
|
458
481
|
query: { access_token: page_access_token, fields: %w[persistent_menu] },
|
459
482
|
)
|
460
483
|
end
|
484
|
+
|
485
|
+
## == Set bot home url ==
|
486
|
+
## == Allows your bot to enable a Chat Extension in the composer drawer in Messenger. ==
|
487
|
+
## == It controls what is displayed when the Chat Extension is invoked via the composer drawer in Messenger. ==
|
488
|
+
def set_messenger_extensions_home_url!
|
489
|
+
raise Bobot::FieldFormat.new("access_token is required") unless page_access_token.present?
|
490
|
+
raise Bobot::FieldFormat.new("Bobot.config.url_for_chat_extension is required") unless Bobot.config.url_for_chat_extension.present?
|
491
|
+
Bobot::Profile.set(
|
492
|
+
body: {
|
493
|
+
"home_url": {
|
494
|
+
"url": Bobot.config.url_for_chat_extension,
|
495
|
+
"webview_height_ratio": Bobot.config.size_for_chat_extension || "tall",
|
496
|
+
"webview_share_button": Bobot.config.share_button_for_chat_extension || "show",
|
497
|
+
"in_test": Bobot.config.in_test_for_chat_extension || true,
|
498
|
+
}
|
499
|
+
},
|
500
|
+
query: { access_token: page_access_token },
|
501
|
+
)
|
502
|
+
end
|
503
|
+
|
504
|
+
def unset_messenger_extensions_home_url!
|
505
|
+
raise Bobot::FieldFormat.new("access_token is required") unless page_access_token.present?
|
506
|
+
Bobot::Profile.unset(
|
507
|
+
body: { fields: %w[home_url] },
|
508
|
+
query: { access_token: page_access_token },
|
509
|
+
)
|
510
|
+
end
|
511
|
+
|
512
|
+
def get_messenger_extensions_home_url
|
513
|
+
raise Bobot::FieldFormat.new("access_token is required") unless page_access_token.present?
|
514
|
+
Bobot::Profile.get(
|
515
|
+
query: { access_token: page_access_token, fields: %w[home_url] },
|
516
|
+
)
|
517
|
+
end
|
461
518
|
end
|
462
519
|
end
|
data/lib/bobot/version.rb
CHANGED
@@ -1,15 +1,20 @@
|
|
1
1
|
bobot_config = Rails.application.config_for(:bobot).with_indifferent_access
|
2
2
|
if bobot_config.present?
|
3
3
|
Bobot.configure do |config|
|
4
|
-
config.app_id
|
5
|
-
config.app_secret
|
6
|
-
config.verify_token
|
7
|
-
config.skip_code
|
8
|
-
config.domains
|
9
|
-
config.async
|
10
|
-
config.commander_queue_name
|
4
|
+
config.app_id = bobot_config[:app_id]
|
5
|
+
config.app_secret = bobot_config[:app_secret]
|
6
|
+
config.verify_token = bobot_config[:verify_token]
|
7
|
+
config.skip_code = bobot_config[:skip_code]
|
8
|
+
config.domains = bobot_config[:domains]
|
9
|
+
config.async = bobot_config[:async]
|
10
|
+
config.commander_queue_name = bobot_config[:commander_queue_name]
|
11
|
+
config.url_for_chat_extension = bobot_config[:url_for_chat_extension]
|
12
|
+
config.size_for_chat_extension = bobot_config[:size_for_chat_extension]
|
13
|
+
config.share_button_for_chat_extension = bobot_config[:share_button_for_chat_extension]
|
14
|
+
config.in_test_for_chat_extension = bobot_config[:in_test_for_chat_extension]
|
11
15
|
bobot_config[:pages].each do |page|
|
12
16
|
next if page[:slug].nil? || page[:page_id].nil? || page[:page_access_token].nil? || page[:get_started_payload].nil?
|
17
|
+
|
13
18
|
config.pages << Bobot::Page.new(
|
14
19
|
slug: page[:slug],
|
15
20
|
language: page[:language],
|