From a999a3151cbfb5d49c6d922c994f682f0b9406ee Mon Sep 17 00:00:00 2001 From: Sawy Date: Wed, 8 Jul 2026 14:55:11 +0300 Subject: [PATCH 1/2] CV2-6719: add Utlity template instead of tagging --- .../concerns/facebook_authentication.rb | 2 +- app/models/concerns/smooch_resend.rb | 33 ++++++++++++++++++- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/app/controllers/concerns/facebook_authentication.rb b/app/controllers/concerns/facebook_authentication.rb index e958197c1..cea974a5a 100644 --- a/app/controllers/concerns/facebook_authentication.rb +++ b/app/controllers/concerns/facebook_authentication.rb @@ -5,7 +5,7 @@ def setup_facebook # pages_manage_metadata is for Facebook API > 7 # manage_pages is for Facebook API < 7 # An error will be displayed for Facebook users that are admins of the Facebook app, but should be transparent for other users - request.env['omniauth.strategy'].options[:scope] = 'pages_manage_metadata,manage_pages,pages_messaging,instagram_manage_messages,instagram_basic' if params[:context] == 'smooch' + request.env['omniauth.strategy'].options[:scope] = 'pages_manage_metadata,manage_pages,pages_messaging,instagram_manage_messages,instagram_basic,pages_utility_messaging' if params[:context] == 'smooch' prefix = facebook_context == 'smooch' ? 'smooch_' : '' request.env['omniauth.strategy'].options[:client_id] = CheckConfig.get("#{prefix}facebook_app_id") request.env['omniauth.strategy'].options[:client_secret] = CheckConfig.get("#{prefix}facebook_app_secret") diff --git a/app/models/concerns/smooch_resend.rb b/app/models/concerns/smooch_resend.rb index b5bcbe8f7..5af16ac5b 100644 --- a/app/models/concerns/smooch_resend.rb +++ b/app/models/concerns/smooch_resend.rb @@ -142,6 +142,35 @@ def message_tags_payload(text, image = nil) } end + def messenger_utility_template_payload(template_name, parameters, language: 'en') + { + override: { + messenger: { + payload: { + messaging_type: 'UTILITY', + template: { + name: template_name, + language: { + code: language + }, + components: [ + { + type: 'body', + parameters: parameters.map do |parameter| + { + type: 'text', + text: parameter.to_s + } + end + } + ] + } + } + } + } + } + end + def resend_facebook_messenger_message_after_window(message, original) original = JSON.parse(original) unless original.blank? uid = message['appUser']['_id'] @@ -153,7 +182,9 @@ def resend_facebook_messenger_message_after_window(message, original) if original&.dig('fallback_template') == 'newsletter' newsletter = TiplineNewsletter.where(language: original['language'], team_id: self.config['team_id'].to_i).last newsletter_content = newsletter.build_content - self.send_message_to_user(uid, newsletter_content, self.message_tags_payload(newsletter_content)) + payload = self.messenger_utility_template_payload('newsletter_subscription_update_v1', ['Check']) + self.send_message_to_user(uid, newsletter_content, payload) + # self.send_message_to_user(uid, newsletter_content, self.message_tags_payload(newsletter_content)) return true end From 76a7627865ac0930a6dfc422b6205e999ac5e082 Mon Sep 17 00:00:00 2001 From: Sawy Date: Wed, 22 Jul 2026 18:05:56 +0300 Subject: [PATCH 2/2] CV2-6719: add a dummy testing --- app/models/concerns/smooch_resend.rb | 46 ++++++++++++++++------------ 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/app/models/concerns/smooch_resend.rb b/app/models/concerns/smooch_resend.rb index 5af16ac5b..b045419e4 100644 --- a/app/models/concerns/smooch_resend.rb +++ b/app/models/concerns/smooch_resend.rb @@ -148,22 +148,24 @@ def messenger_utility_template_payload(template_name, parameters, language: 'en' messenger: { payload: { messaging_type: 'UTILITY', - template: { - name: template_name, - language: { - code: language - }, - components: [ - { - type: 'body', - parameters: parameters.map do |parameter| - { - type: 'text', - text: parameter.to_s - } - end - } - ] + message: { + template: { + name: template_name, + language: { + code: language + }, + components: [ + { + type: 'BODY', + parameters: parameters.map do |parameter| + { + type: 'text', + text: parameter.to_s + } + end + } + ] + } } } } @@ -182,9 +184,7 @@ def resend_facebook_messenger_message_after_window(message, original) if original&.dig('fallback_template') == 'newsletter' newsletter = TiplineNewsletter.where(language: original['language'], team_id: self.config['team_id'].to_i).last newsletter_content = newsletter.build_content - payload = self.messenger_utility_template_payload('newsletter_subscription_update_v1', ['Check']) - self.send_message_to_user(uid, newsletter_content, payload) - # self.send_message_to_user(uid, newsletter_content, self.message_tags_payload(newsletter_content)) + self.send_message_to_user(uid, newsletter_content, self.message_tags_payload(newsletter_content)) return true end @@ -207,7 +207,13 @@ def resend_facebook_messenger_report_after_window(message, original) last_smooch_response = nil last_smooch_response = self.send_message_to_user(uid, introduction, self.message_tags_payload(introduction)) if introduction last_smooch_response = self.send_message_to_user(uid, 'Visual Card', self.message_tags_payload(nil, image)) if image - last_smooch_response = self.send_message_to_user(uid, full_text, self.message_tags_payload(full_text)) if text + if text + # Use template here for testing + template = original&.dig('fallback_template') + payload = self.messenger_utility_template_payload(template, ['Check']) + # last_smooch_response = self.send_message_to_user(uid, full_text, self.message_tags_payload(full_text)) + last_smooch_response = self.send_message_to_user(uid, full_text, payload) + end self.save_smooch_response(last_smooch_response, pm, query_date, 'fact_check_report', language) return true end