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。因此,您可以随时查看您发送的最后一条消息,了解对方可能会回复什么。
我有一个 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。因此,您可以随时查看您发送的最后一条消息,了解对方可能会回复什么。