【发布时间】:2021-12-07 23:43:26
【问题描述】:
我有一个 DeliveryNotice 函数,在发送 Whatsapp 消息后由 Twilio 调用。在该函数中,我想设置响应 cookie 或标头,以便当我的用户回复 Whatsapp 消息时,我能够追踪它来自哪条消息。
我尝试设置 cookie 和标头,但是当用户回复时调用 InboundMessage 函数时,我无法看到设置的 cookie 甚至设置的标头。
这是我的代码:
[HttpPost("FileDeliveryNotice")]
[Consumes("application/x-www-form-urlencoded")]
public ActionResult FileDeliveryNotice([FromForm] WhatsappFileDeliveryNotice Input)
{
var r = Request;
HttpContext.Response.Cookies.Append("MessageSID", Input.MessageSid);
Response.Headers.Add("MessageSID", Input.MessageSid);
return Ok(res);
}
[HttpPost("InboundMessage")]
[Consumes("application/x-www-form-urlencoded")]
public ActionResult InboundMessage([FromForm] WhatsappInboundMessage Input)
{
var r = Request;
var res = whatsappIMData.Save(Input);
return Ok(res);
}
编辑:
TwilioClient.Init(accountSid, authToken);
var message = MessageResource.Create(
body: messageText,
statusCallback: new Uri($"{configuration[SDR_Core.ClassLibrary.Globals.ConfigurationGlobals.Whatsapp_Callback_Url]}Communication/Whatsapp/FileDeliveryNotice"),
to: new Twilio.Types.PhoneNumber($"whatsapp:+6{Input.NewSendFileDetailsViewModel.MobileNumber}"),
messagingServiceSid: tcd.TwilioMessagingServiceSID
);
【问题讨论】:
-
您应该可以使用 Cookie 来执行此操作,尽管它们只能持续 4 小时,所以这可能是问题所在吗?这是setting cookies in C# 上的文档,可能会提示您出了什么问题。
-
当我的用户立即回复并且 twilio webhook 调用 InboundMessage 时,标头不包含设置的标头并且 cookie 为空。代码示例使用支持 Session 的 asp.net mvc。我正在使用 .net 核心。
-
什么时候调用 FileDeliveryNotice?
-
第一次发送消息的时间。我编辑了我的代码以显示它。
标签: c# asp.net-core .net-core twilio whatsapp