如何将属性特定于应用程序的数据添加到 Twilio SMS - 2021

问题描述

我正在开发一个约会确认系统,我需要将 SMS 响应“Y”或“N”绑定到一些元数据,并通过 Twilio webhook 将该元数据发送到我的 API。

我正在使用来自 Twilio 的 .NET SDK 并尝试将属性添加到他们的文档所述的 SMS 消息 (MessageResource) 中:

属性

  • STRING PII MTL:30 天 “存储应用程序特定数据的 JSON 字符串。如果尚未设置属性,则返回 {}。”

文档链接https://www.twilio.com/docs/chat/rest/message-resource#message-properties

这更像是我需要的元数据,但是当我尝试使用他们的 SDK 在我的 C# 代码中查找任何“属性属性时,我找不到它。

这是我的代码

 var twilioMessage = MessageResource.Create(
                    body: msg,from: _configuration["Twilio:FromPhoneNo"],to: new PhoneNumber(phoneNumber),attempt:1,attributes: "{"id":"test"}" //this property doesn't work
                );

  var attributes = twilioMessage.attributes; //this doesn't work either

任何帮助将不胜感激。

解决方法

这里是 Twilio 开发者布道者。

恐怕您正在查看有关在那里发送 SMS 消息的错误文档。 This documentation is for sending a chat (app to app) messagedocumentation for sending an SMS is here

遗憾的是,SMS 消息无法将自定义属性绑定到它们。它只是协议中不存在的东西。

您正在发送预约确认并期待“Y”或“N”响应。我猜您正在尝试添加约会的 ID,以防您将多个约会的确认发送到同一个电话号码,并且您需要确定响应是关于哪个约会的。这里还有一个问题,作为最终用户,您无法回复特定的 SMS 消息。短信纯粹是按时间顺序排列的。

我可以想到 3 种方法来解决此问题:

  1. 一次只发送一个确认。如果您仍在等待对确认的响应,请在收到该响应之前不要再发送一个。如果用户不回复确认,这可能不起作用。

  2. 让用户在响应中包含约会的 ID。这是不稳定的,因为它依赖于用户把事情做对,而你想让他们做的事情尽可能简单

  3. 当您需要一次发送多个确认时,请使用不同的 Twilio 号码发送确认。然后,您可以通过检查用户将消息发送到的 Twilio 号码,将确认响应与约会联系起来。

第 3 种方法是最合理的方法。它不应该要求您有太多的额外号码,只要您可能同时进行预约确认即可。

告诉我这是否有帮助。