我正在创建一个使用 twilio 的网络应用程序,但我似乎遇到了问题。
该系统由 3 个参与者组成:
- 实体客户
- 物理服务器
- 我们的网络应用程序
每当客户端通过表单创建新的“作业”时,所有作业详细信息都将以文本的形式发送到许多不同的服务器。当任何一个服务器回复该短信时,我们需要能够将他的回复与他回复的特定“工作”相关联。问题是如果不为每个工作购买一个号码并将每个号码与工作相关联,我无法弄清楚如何做到这一点。如果可能的话,我只想使用一个号码,因为购买数千个号码是完全浪费且不可能的。
我正在创建一个使用 twilio 的网络应用程序,但我似乎遇到了问题。
该系统由 3 个参与者组成:
每当客户端通过表单创建新的“作业”时,所有作业详细信息都将以文本的形式发送到许多不同的服务器。当任何一个服务器回复该短信时,我们需要能够将他的回复与他回复的特定“工作”相关联。问题是如果不为每个工作购买一个号码并将每个号码与工作相关联,我无法弄清楚如何做到这一点。如果可能的话,我只想使用一个号码,因为购买数千个号码是完全浪费且不可能的。
Cookie 是处理对话的最佳方式,但由于您无法分辨服务器回复的是哪条短信,这可能会很棘手。如果您向服务器发送 2 个作业,而他们选择回复第一个作业,您就无法知道这一点。
我认为您有两种明智的做法:
好吧,根据 Twilio 的说法,答案是使用 cookie:
http://www.twilio.com/docs/quickstart/php/sms/tracking-conversations
就像在 Web 应用程序中一样,cookie 是一个小文件,您的应用程序可以存储在 Twilio 的服务器上以跟踪信息,例如用户名或帐户。对于 Twilio SMS,cookie 的范围是两方之间的“对话”——您可以为每个收件人/发件人电话号码对设置一个唯一的 cookie。例如,您可以为在 415-555-2222 和 415-555-1111 之间发送的任何消息存储一个唯一的 cookie,这将不同于在 415-555-3333 和 415-555-1111 之间使用的 cookie。
我最近遇到了这个问题,发现一篇文章很好地解释了使用@xmjw 提到的池的想法
尽管应用程序不同,但这里的概念是相同的。对于任何可能偶然发现这个问题并需要其他解决方案的人。
我最终在我的解决方案中做的是生成独特的响应代码。然后在回复中,我可以查询响应代码和发件人编号以与原始文本相关联。但就我而言,双方都是人类。对于像服务器一样自动化的一侧,您可以将文本解析为代码是什么,然后与该代码一起返回。那你就SELECT * FROM messages WHERE code = ?
.