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 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