From 7d8226cad7c7dbeea48bea997fe22a5031788f28 Mon Sep 17 00:00:00 2001 From: hchen Date: Sun, 20 Aug 2023 20:23:33 -0500 Subject: [PATCH] Messenger template message. --- .../Interfaces/IResponseMessage.cs | 5 +++++ .../MessagingModels/AttachementPayload.cs | 11 +++++++++++ .../MessagingModels/AttachmentBody.cs | 7 +++++++ .../MessagingModels/ButtonItem.cs | 8 ++++++++ .../MessagingModels/QuickReplyMessage.cs | 3 ++- .../MessagingModels/TemplateMessage.cs | 13 +++++++++++++ 6 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 src/Plugins/BotSharp.Plugin.MetaMessenger/Interfaces/IResponseMessage.cs create mode 100644 src/Plugins/BotSharp.Plugin.MetaMessenger/MessagingModels/AttachementPayload.cs create mode 100644 src/Plugins/BotSharp.Plugin.MetaMessenger/MessagingModels/AttachmentBody.cs create mode 100644 src/Plugins/BotSharp.Plugin.MetaMessenger/MessagingModels/ButtonItem.cs create mode 100644 src/Plugins/BotSharp.Plugin.MetaMessenger/MessagingModels/TemplateMessage.cs diff --git a/src/Plugins/BotSharp.Plugin.MetaMessenger/Interfaces/IResponseMessage.cs b/src/Plugins/BotSharp.Plugin.MetaMessenger/Interfaces/IResponseMessage.cs new file mode 100644 index 00000000..c03e5ea9 --- /dev/null +++ b/src/Plugins/BotSharp.Plugin.MetaMessenger/Interfaces/IResponseMessage.cs @@ -0,0 +1,5 @@ +namespace BotSharp.Plugin.MetaMessenger.Interfaces; + +public interface IResponseMessage +{ +} diff --git a/src/Plugins/BotSharp.Plugin.MetaMessenger/MessagingModels/AttachementPayload.cs b/src/Plugins/BotSharp.Plugin.MetaMessenger/MessagingModels/AttachementPayload.cs new file mode 100644 index 00000000..f78fd762 --- /dev/null +++ b/src/Plugins/BotSharp.Plugin.MetaMessenger/MessagingModels/AttachementPayload.cs @@ -0,0 +1,11 @@ +using System.Text.Json.Serialization; + +namespace BotSharp.Plugin.MetaMessenger.MessagingModels; + +public class AttachementPayload +{ + [JsonPropertyName("template_type")] + public string TemplateType { get; set; } + public string Text { get; set; } + public ButtonItem[] Buttons { get; set; } +} diff --git a/src/Plugins/BotSharp.Plugin.MetaMessenger/MessagingModels/AttachmentBody.cs b/src/Plugins/BotSharp.Plugin.MetaMessenger/MessagingModels/AttachmentBody.cs new file mode 100644 index 00000000..90c5de53 --- /dev/null +++ b/src/Plugins/BotSharp.Plugin.MetaMessenger/MessagingModels/AttachmentBody.cs @@ -0,0 +1,7 @@ +namespace BotSharp.Plugin.MetaMessenger.MessagingModels; + +public class AttachmentBody +{ + public string Type { get; set; } = "template"; + public AttachementPayload Payload { get; set; } +} diff --git a/src/Plugins/BotSharp.Plugin.MetaMessenger/MessagingModels/ButtonItem.cs b/src/Plugins/BotSharp.Plugin.MetaMessenger/MessagingModels/ButtonItem.cs new file mode 100644 index 00000000..143e966b --- /dev/null +++ b/src/Plugins/BotSharp.Plugin.MetaMessenger/MessagingModels/ButtonItem.cs @@ -0,0 +1,8 @@ +namespace BotSharp.Plugin.MetaMessenger.MessagingModels; + +public class ButtonItem +{ + public string Type { get; set; } + public string Title { get; set; } + public string Url { get; set; } +} diff --git a/src/Plugins/BotSharp.Plugin.MetaMessenger/MessagingModels/QuickReplyMessage.cs b/src/Plugins/BotSharp.Plugin.MetaMessenger/MessagingModels/QuickReplyMessage.cs index cefc74d2..e0db6925 100644 --- a/src/Plugins/BotSharp.Plugin.MetaMessenger/MessagingModels/QuickReplyMessage.cs +++ b/src/Plugins/BotSharp.Plugin.MetaMessenger/MessagingModels/QuickReplyMessage.cs @@ -1,3 +1,4 @@ +using BotSharp.Plugin.MetaMessenger.Interfaces; using System.Text.Json.Serialization; namespace BotSharp.Plugin.MetaMessenger.MessagingModels; @@ -6,7 +7,7 @@ namespace BotSharp.Plugin.MetaMessenger.MessagingModels; /// Quick Replies /// https://developers.facebook.com/docs/messenger-platform/send-messages/quick-replies /// -public class QuickReplyMessage +public class QuickReplyMessage : IResponseMessage { [JsonPropertyName("text")] public string Text { get; set; } diff --git a/src/Plugins/BotSharp.Plugin.MetaMessenger/MessagingModels/TemplateMessage.cs b/src/Plugins/BotSharp.Plugin.MetaMessenger/MessagingModels/TemplateMessage.cs new file mode 100644 index 00000000..1981b258 --- /dev/null +++ b/src/Plugins/BotSharp.Plugin.MetaMessenger/MessagingModels/TemplateMessage.cs @@ -0,0 +1,13 @@ +using BotSharp.Plugin.MetaMessenger.Interfaces; +using System.Text.Json.Serialization; + +namespace BotSharp.Plugin.MetaMessenger.MessagingModels; + +/// +/// https://developers.facebook.com/docs/messenger-platform/send-messages/templates +/// +public class TemplateMessage : IResponseMessage +{ + [JsonPropertyName("attachment")] + public AttachmentBody Attachment { get; set; } +}