bobot 4.5.0 → 4.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d093e3ccb5910f8a8427770a9dd8c62cd23a3e1bca8edcf04e46060d057bb048
4
- data.tar.gz: 37b0b720425ce522449ddcd7563d05a37f82da50efcaa780abe48bba4f22db21
3
+ metadata.gz: 6d0dd60ee7828d2dacb7c0bcbaa04a12bd70aa39a08a40ac60742daa16352b54
4
+ data.tar.gz: 15be7b32a6c8a7d0abfe8a705734f23150f6ec8a2c16de62f421639389fb8980
5
5
  SHA512:
6
- metadata.gz: 4e7b089446483cde8685cab259ebff4e8868f6685bc72563f1957dc36f7e75de0e8396496265f821af52ecb8ddfe6b47c5933d3b940b45c4297f98ddfddcfaf2
7
- data.tar.gz: ad4f5447c8c509f82195fa05a2fde2bcee17ad8e1b891b39eab6e5e3186ffc5ec037374986f98b973e853101ac24f79513e9f9fc5a5abb332e34ba23909052f0
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
 
@@ -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?
@@ -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.1'.freeze
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,7 +1,7 @@
1
1
  module Bobot
2
2
  class Version
3
3
  MAJOR = 4
4
- MINOR = 5
4
+ MINOR = 6
5
5
  PATCH = 0
6
6
  PRE = nil
7
7
 
@@ -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 = 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]
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],
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bobot
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.5.0
4
+ version: 4.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Navid EMAD