Twilio:如何将短信回复映射到原始短信

时间:2013-04-25 00:02:03

标签: twilio

我正在创建一个使用twilio的网络应用程序,我似乎遇到了问题。

该系统由3名演员组成:

  • 实体客户
  • 物理服务器
  • 我们的网络应用

每当客户通过表单创建新的“作业”时,所有作业详细信息都将以文本形式发送到许多不同的服务器。当任何一个服务器回复该文本消息时,我们需要能够将他的回复与他回复的特定“作业”相关联。问题是我无法弄清楚如何在不为每个工作购买数字的情况下做到这一点,只是将每个数字与工作相关联。如果可能的话,我只想使用一个号码,因为购买数千个号码是完全浪费和不可能的。

3 个答案:

答案 0 :(得分:8)

Cookies are the best way to handle a conversation,但由于您无法分辨服务器回复的文本消息,因此可能会非常棘手。如果您发送服务器2个作业,并且他们选择回复第一个作业,则您无法知道这一点。

我认为你有两种合理的方法:

  • 为每个作业提供服务器可以回复的参考代码(2或3位数字以方便)。这是最可靠的方法。
  • 使用多个但不多的电话号码。因此,在一天或几个小时的期间内,您只需为每个号码发送一个服务器一个作业。然后,您可以回收数字池,并在作业“超时”后重复使用它们。这取决于您期望的数量。

答案 1 :(得分:5)

根据Twilio的说法,答案是使用cookies:

http://www.twilio.com/docs/quickstart/php/sms/tracking-conversations

  

就像在Web应用程序中一样,cookie是一个小文件,您的应用程序可以存储在Twilio的服务器上以跟踪信息,例如用户名或帐户。对于Twilio SMS,Cookie的范围限定为"会话"在两方之间 - 您可以为每个To / From电话号码对提供唯一的Cookie。例如,您可以为415-555-2222和415-555-1111之间发送的任何消息存储唯一的cookie,这将与415-555-3333和415-555-1111之间使用的cookie不同。

答案 2 :(得分:1)

我最近碰到了这篇文章,发现一篇文章很好地解释了@xmjw提到的池概念

How users can send text messages to each other over Twilio

虽然应用程序不同,但这里的概念有点相同。对于任何可能偶然发现这个问题并需要其他解决方案的人。

我最终在我的解决方案中做的是生成唯一的响应代码。然后在回复中,我可以查询响应代码和从编号回复到原始文本。但就我而言,双方都是人。对于像服务器一样自动化的一方,您可以解析代码所针对的文本,然后使用该代码返回。然后你只需SELECT * FROM messages WHERE code = ?