diff --git a/src/Infrastructure/BotSharp.Abstraction/Messaging/IRichMessage.cs b/src/Infrastructure/BotSharp.Abstraction/Messaging/IRichMessage.cs index 3f61bc8d..0fce3f4c 100644 --- a/src/Infrastructure/BotSharp.Abstraction/Messaging/IRichMessage.cs +++ b/src/Infrastructure/BotSharp.Abstraction/Messaging/IRichMessage.cs @@ -2,6 +2,5 @@ namespace BotSharp.Abstraction.Messaging; public interface IRichMessage { - string Type { get; } string Text { get; set; } } diff --git a/src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/QuickReplyMessage.cs b/src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/QuickReplyMessage.cs index 4fb1bcdb..b0081c81 100644 --- a/src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/QuickReplyMessage.cs +++ b/src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/QuickReplyMessage.cs @@ -1,8 +1,8 @@ namespace BotSharp.Abstraction.Messaging.Models.RichContent { - public class QuickReplyMessage : RichMessageBase, IRichMessage + public class QuickReplyMessage : IRichMessage { - public override string Type => "quick reply"; + public string Text { get; set; } = string.Empty; [JsonPropertyName("quick_replies")] public List QuickReplies { get; set; } = new List(); diff --git a/src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/Template/ButtonTemplateMessage.cs b/src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/Template/ButtonTemplateMessage.cs index 93af426a..4acac72b 100644 --- a/src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/Template/ButtonTemplateMessage.cs +++ b/src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/Template/ButtonTemplateMessage.cs @@ -3,12 +3,12 @@ namespace BotSharp.Abstraction.Messaging.Models.RichContent.Template /// /// https://developers.facebook.com/docs/messenger-platform/send-messages/buttons /// - public class ButtonTemplateMessage : RichMessageBase, IRichMessage, ITemplateMessage + public class ButtonTemplateMessage : IRichMessage { - public override string Type => "template"; + public string Text { get; set; } = string.Empty; [JsonPropertyName("template_type")] - public override string TemplateType => "button"; + public string TemplateType => "button"; public List Buttons { get; set; } = new List(); } diff --git a/src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/Template/CouponTemplateMessage.cs b/src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/Template/CouponTemplateMessage.cs index d4ab5fb0..8fb74efd 100644 --- a/src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/Template/CouponTemplateMessage.cs +++ b/src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/Template/CouponTemplateMessage.cs @@ -4,18 +4,16 @@ namespace BotSharp.Abstraction.Messaging.Models.RichContent.Template; /// Coupon Template /// https://developers.facebook.com/docs/messenger-platform/send-messages/template/coupon /// -public class CouponTemplateMessage : RichMessageBase, IRichMessage, ITemplateMessage +public class CouponTemplateMessage : IRichMessage, ITemplateMessage { - public override string Type => "template"; - - [JsonPropertyName("template_type")] - public override string TemplateType => "coupon"; - [JsonIgnore] - public override string Text { get; set; } + public string Text { get; set; } public string Title { get; set; } public string Subtitle { get; set; } + [JsonPropertyName("template_type")] + public string TemplateType => "coupon"; + [JsonPropertyName("coupon_code")] public string CouponCode { get; set; } diff --git a/src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/Template/MultiSelectTemplateMessage.cs b/src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/Template/MultiSelectTemplateMessage.cs index a7b0e5ff..df8e1183 100644 --- a/src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/Template/MultiSelectTemplateMessage.cs +++ b/src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/Template/MultiSelectTemplateMessage.cs @@ -1,8 +1,8 @@ namespace BotSharp.Abstraction.Messaging.Models.RichContent.Template { - public class MultiSelectTemplateMessage : RichMessageBase, IRichMessage + public class MultiSelectTemplateMessage : IRichMessage { - public override string Type => "template"; + public string Text { get; set; } = string.Empty; [JsonPropertyName("template_type")] public string TemplateType => "multi-select"; diff --git a/src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/Template/TemplateMessageBase.cs b/src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/Template/TemplateMessageBase.cs index ab2ecd66..b2d568cc 100644 --- a/src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/Template/TemplateMessageBase.cs +++ b/src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/Template/TemplateMessageBase.cs @@ -1,15 +1,12 @@ namespace BotSharp.Abstraction.Messaging.Models.RichContent.Template { - public class TemplateMessageBase : RichMessageBase + public class TemplateMessageBase { [JsonIgnore] public string Text { get; set; } - public override string Type => "template"; - [JsonPropertyName("template_type")] public virtual string TemplateType => string.Empty; - public T[] Elements { get; set; } } } diff --git a/src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/TextMessage.cs b/src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/TextMessage.cs index a615318e..dfb611d3 100644 --- a/src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/TextMessage.cs +++ b/src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/TextMessage.cs @@ -1,8 +1,8 @@ namespace BotSharp.Abstraction.Messaging.Models.RichContent; -public class TextMessage : RichMessageBase, IRichMessage +public class TextMessage : IRichMessage { - public string Type => "text"; + public string Text { get; set; } = string.Empty; public TextMessage(string text) { diff --git a/src/Infrastructure/BotSharp.Abstraction/Messaging/RichMessageBase.cs b/src/Infrastructure/BotSharp.Abstraction/Messaging/RichMessageBase.cs deleted file mode 100644 index 39c39b80..00000000 --- a/src/Infrastructure/BotSharp.Abstraction/Messaging/RichMessageBase.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace BotSharp.Abstraction.Messaging; - -public class RichMessageBase -{ - public virtual string Type { get; } - - public virtual string Text { get; set; } - - [JsonPropertyName("template_type")] - public virtual string TemplateType { get; } -} diff --git a/src/Plugins/BotSharp.Plugin.ChatHub/Hooks/ChatHubConversationHook.cs b/src/Plugins/BotSharp.Plugin.ChatHub/Hooks/ChatHubConversationHook.cs index 472b20b1..df2de65e 100644 --- a/src/Plugins/BotSharp.Plugin.ChatHub/Hooks/ChatHubConversationHook.cs +++ b/src/Plugins/BotSharp.Plugin.ChatHub/Hooks/ChatHubConversationHook.cs @@ -1,4 +1,5 @@ using BotSharp.Abstraction.Messaging; +using BotSharp.Abstraction.Messaging.Models.RichContent; using Microsoft.AspNetCore.SignalR; namespace BotSharp.Plugin.ChatHub.Hooks; @@ -24,7 +25,7 @@ public class ChatHubConversationHook : ConversationHookBase var welcomeTemplate = agent.Templates.FirstOrDefault(x => x.Name == "welcome"); if (welcomeTemplate != null) { - var messages = JsonSerializer.Deserialize(welcomeTemplate.Content, new JsonSerializerOptions + var messages = JsonSerializer.Deserialize(welcomeTemplate.Content, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); diff --git a/src/Plugins/BotSharp.Plugin.MetaMessenger/MessagingModels/AttachmentMessage.cs b/src/Plugins/BotSharp.Plugin.MetaMessenger/MessagingModels/AttachmentMessage.cs index 68e3336a..08aaad34 100644 --- a/src/Plugins/BotSharp.Plugin.MetaMessenger/MessagingModels/AttachmentMessage.cs +++ b/src/Plugins/BotSharp.Plugin.MetaMessenger/MessagingModels/AttachmentMessage.cs @@ -10,6 +10,4 @@ public class AttachmentMessage : IRichMessage [JsonPropertyName("attachment")] public AttachmentBody Attachment { get; set; } - - public string Type => "template"; } diff --git a/src/Plugins/BotSharp.Plugin.MetaMessenger/Services/MessageHandleService.cs b/src/Plugins/BotSharp.Plugin.MetaMessenger/Services/MessageHandleService.cs index a11be86d..74c1c8f3 100644 --- a/src/Plugins/BotSharp.Plugin.MetaMessenger/Services/MessageHandleService.cs +++ b/src/Plugins/BotSharp.Plugin.MetaMessenger/Services/MessageHandleService.cs @@ -107,10 +107,11 @@ public class MessageHandleService // Response to user foreach(var reply in replies) { + var content = JsonSerializer.Serialize(reply, _serializerOptions); await messenger.SendMessage(setting.ApiVersion, setting.PageId, new SendingMessageRequest(setting.PageAccessToken, recipient) { - Message = JsonSerializer.Serialize(reply, _serializerOptions) + Message = content }); Thread.Sleep(500); }