diff --git a/Samples/WhatsAppBusinessCloudAPI.Web/Controllers/HomeController.cs b/Samples/WhatsAppBusinessCloudAPI.Web/Controllers/HomeController.cs index de69e4a..5349e11 100644 --- a/Samples/WhatsAppBusinessCloudAPI.Web/Controllers/HomeController.cs +++ b/Samples/WhatsAppBusinessCloudAPI.Web/Controllers/HomeController.cs @@ -669,6 +669,68 @@ public async Task SendWhatsAppDocumentTemplateMessageWithParamete } } + [HttpPost] + [ValidateAntiForgeryToken] + public async Task SendWhatsAppVideoTemplateMessageWithParameters(SendTemplateMessageViewModel sendTemplateMessageViewModel) + { + try + { + VideoTemplateMessageRequest videoTemplateMessage = new(); + videoTemplateMessage.To = sendTemplateMessageViewModel.RecipientPhoneNumber; + videoTemplateMessage.Template = new(); + videoTemplateMessage.Template.Name = sendTemplateMessageViewModel.TemplateName; + videoTemplateMessage.Template.Language = new(); + videoTemplateMessage.Template.Language.Code = LanguageCode.English_US; + videoTemplateMessage.Template.Components = new List() + { + new VideoMessageComponent() + { + Type = "header", + Parameters = new List() + { + new VideoMessageParameter() + { + Type = "video", + Video = new Video() + { + //Id = sendTemplateMessageViewModel.MediaId, + Link = sendTemplateMessageViewModel.LinkUrl // Link point where your document can be downloaded or retrieved by WhatsApp + } + } + }, + }, + new VideoMessageComponent() + { + Type = "body", + Parameters = new List() + { + new VideoMessageParameter() + { + Type = "text", + Text = "Video Information" + }, + } + } + }; + + var results = await _whatsAppBusinessClient.SendVideoAttachmentTemplateMessageAsync(videoTemplateMessage); + + if (results != null) + { + return RedirectToAction(nameof(Index)); + } + else + { + return RedirectToAction(nameof(SendWhatsAppTemplateMessage)); + } + } + catch (WhatsappBusinessCloudAPIException ex) + { + _logger.LogError(ex, ex.Message); + return RedirectToAction(nameof(SendWhatsAppTemplateMessage)); + } + } + public IActionResult SendWhatsAppContactMessage() { return View(); diff --git a/Samples/WhatsAppBusinessCloudAPI.Web/ViewModel/SendTemplateMessageViewModel.cs b/Samples/WhatsAppBusinessCloudAPI.Web/ViewModel/SendTemplateMessageViewModel.cs index 27974a3..50ca7d8 100644 --- a/Samples/WhatsAppBusinessCloudAPI.Web/ViewModel/SendTemplateMessageViewModel.cs +++ b/Samples/WhatsAppBusinessCloudAPI.Web/ViewModel/SendTemplateMessageViewModel.cs @@ -5,5 +5,6 @@ public class SendTemplateMessageViewModel public string RecipientPhoneNumber { get; set; } public string TemplateName { get; set; } public string MediaId { get; set; } + public string LinkUrl { get; set; } } } diff --git a/Samples/WhatsAppBusinessCloudAPI.Web/Views/Home/SendWhatsAppTemplateMessage.cshtml b/Samples/WhatsAppBusinessCloudAPI.Web/Views/Home/SendWhatsAppTemplateMessage.cshtml index a191a04..090236a 100644 --- a/Samples/WhatsAppBusinessCloudAPI.Web/Views/Home/SendWhatsAppTemplateMessage.cshtml +++ b/Samples/WhatsAppBusinessCloudAPI.Web/Views/Home/SendWhatsAppTemplateMessage.cshtml @@ -33,6 +33,11 @@ +
+ + + +
@@ -53,4 +59,4 @@ @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); } - } \ No newline at end of file +} diff --git a/WhatsappBusiness.CloudApi/Interfaces/IWhatsAppBusinessClient.cs b/WhatsappBusiness.CloudApi/Interfaces/IWhatsAppBusinessClient.cs index 94c4d0f..499131c 100644 --- a/WhatsappBusiness.CloudApi/Interfaces/IWhatsAppBusinessClient.cs +++ b/WhatsappBusiness.CloudApi/Interfaces/IWhatsAppBusinessClient.cs @@ -601,6 +601,14 @@ public interface IWhatsAppBusinessClient /// WhatsAppResponse Task SendVideoAttachmentMessageByIdAsync(VideoMessageByIdRequest videoMessage, CancellationToken cancellationToken = default); + /// + /// Send Video Message by Template + /// + /// VideoTemplateMessageRequest object + /// Cancellation token + /// WhatsAppResponse + Task SendVideoAttachmentTemplateMessageAsync(VideoTemplateMessageRequest videoTemplateMessageRequest, CancellationToken cancellationToken = default); + /// /// Send Video Message by Media Id /// diff --git a/WhatsappBusiness.CloudApi/WhatsAppBusinessClient.cs b/WhatsappBusiness.CloudApi/WhatsAppBusinessClient.cs index 141bad4..4cb74df 100644 --- a/WhatsappBusiness.CloudApi/WhatsAppBusinessClient.cs +++ b/WhatsappBusiness.CloudApi/WhatsAppBusinessClient.cs @@ -981,6 +981,18 @@ public async Task SendVideoAttachmentMessageByIdAsync(VideoMes return await WhatsAppBusinessPostAsync(videoMessage, formattedWhatsAppEndpoint, cancellationToken); } + /// + /// Send Video Template Message + /// + /// VideoTemplateMessageRequest Object + /// Cancellation token + /// WhatsAppResponse + public async Task SendVideoAttachmentTemplateMessageAsync(VideoTemplateMessageRequest videoTemplateMessageRequest, CancellationToken cancellationToken = default) + { + var formattedWhatsAppEndpoint = WhatsAppBusinessRequestEndpoint.SendMessage.Replace("{{Phone-Number-ID}}", _whatsAppConfig.WhatsAppBusinessPhoneNumberId); + return await WhatsAppBusinessPostAsync(videoTemplateMessageRequest, formattedWhatsAppEndpoint, cancellationToken); + } + /// /// Send Video Message using hyperlink ///