Remove RichMessageBase which cause Messenger doesn't work.

This commit is contained in:
Haiping Chen 2023-11-27 16:23:41 -06:00
parent 2cd5337c18
commit 8c1b0bc1e0
11 changed files with 19 additions and 36 deletions

View file

@ -2,6 +2,5 @@ namespace BotSharp.Abstraction.Messaging;
public interface IRichMessage
{
string Type { get; }
string Text { get; set; }
}

View file

@ -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<QuickReplyElement> QuickReplies { get; set; } = new List<QuickReplyElement>();

View file

@ -3,12 +3,12 @@ namespace BotSharp.Abstraction.Messaging.Models.RichContent.Template
/// <summary>
/// https://developers.facebook.com/docs/messenger-platform/send-messages/buttons
/// </summary>
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<ButtonElement> Buttons { get; set; } = new List<ButtonElement>();
}

View file

@ -4,18 +4,16 @@ namespace BotSharp.Abstraction.Messaging.Models.RichContent.Template;
/// Coupon Template
/// https://developers.facebook.com/docs/messenger-platform/send-messages/template/coupon
/// </summary>
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; }

View file

@ -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";

View file

@ -1,15 +1,12 @@
namespace BotSharp.Abstraction.Messaging.Models.RichContent.Template
{
public class TemplateMessageBase<T> : RichMessageBase
public class TemplateMessageBase<T>
{
[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; }
}
}

View file

@ -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)
{

View file

@ -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; }
}

View file

@ -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<RichMessageBase[]>(welcomeTemplate.Content, new JsonSerializerOptions
var messages = JsonSerializer.Deserialize<TextMessage[]>(welcomeTemplate.Content, new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true
});

View file

@ -10,6 +10,4 @@ public class AttachmentMessage : IRichMessage
[JsonPropertyName("attachment")]
public AttachmentBody Attachment { get; set; }
public string Type => "template";
}

View file

@ -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);
}