Twilio C# 将 Cookie 附加到响应

Twilio C# Attach Cookie to response

我有一个 DeliveryNotice 函数,在发送 Whatsapp 消息后由 Twilio 调用。在该函数中,我想设置一个响应 cookie 或 header,以便当我的用户回复 Whatsapp 消息时,我能够追踪它来自哪条消息。

我已经尝试设置 cookie 和 headers,但是当用户回复时调用 InboundMessage 函数时,我看不到设置的 cookie,甚至看不到设置的 header。

这是我的代码:

[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
);

这里是 Twilio 开发人员布道者。

您只能在响应消息的传入 Webhook 时为 Twilio 消息设置 cookie,而不能在使用 REST API 发送消息或接收异步状态回调时设置。

所以,我的意思是您只能在 InboundMessage 路线上设置这些 cookie,这就是您看不到它的原因。

问题是,目前在 Twilio 中并不知道回复了什么消息。这主要是因为 API 首先是基于 SMS,这完全是按时间顺序排列的。有在 WhatsApp 中响应消息的想法,但这需要用户专门响应消息,而 Twilio 不支持它。因此,最好也将消息视为按时间顺序排列的 WhatsApp。因此,您可以随时查看您发送的最后一条消息,了解对方可能会回复什么。