2013-04-25 70 views
5

在創建使用twilio的Web應用程序時,我似乎遇到了問題。Twilio:如何將SMS回覆映射到原始SMS

該系統由3個演員:

  • 物理客戶
  • 一臺物理服務器
  • 我們的Web應用程序

每當客戶端通過表單創建了一個新的 「工作」 ,所有的工作細節將以文本發送到許多不同的服務器。當任何一臺服務器回覆該短信時,我們需要能夠將他的回覆與他回覆的特定「工作」聯繫起來。問題是我不知道如何做到這一點,而不需要爲每項工作購買一個號碼,並將每個號碼與一份工作聯繫起來。如果可能的話,我只想使用一個號碼,因爲購買數千個號碼是完全浪費和不可能的。

回答

8

Cookies are the best way to handle a conversation,但由於您無法確定服務器回覆哪條短信,因此可能會非常棘手。如果您發送服務器2份工作,並且他們選擇回覆第一份工作,則無法知道這一點。

我覺得你有這樣兩個懂事方式:

  • 給每個作業的參考代碼(2或3位,以方便),該服務器可以與回覆。這是最可靠的方法。
  • 使用多個 - 但不是很多 - 電話號碼。因此,在一天或幾個小時內,您只能爲每個服務器發送一個作業。然後,您可以回收數字池,並在作業「超時」後重新使用它們。這取決於你期望的數量。
+0

啊是的,我在想這個。好像我可能只是給每個工作一個工作ID。謝謝。 – user2158382 2013-04-26 16:02:07

+1

+1爲電話號碼池的想法。我喜歡! – 2013-07-29 20:59:12

5

那麼根據Twilio,答案是使用Cookie:

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

就像在Web應用程序,Cookie是你的應用程序可以在Twilio的服務器存儲跟蹤一個小文件的信息,如用戶名或帳戶。對於Twilio短信,Cookie的範圍是雙方之間的「對話」 - 您可以爲每個收件人/發件人電話號碼配對使用一個唯一的Cookie。例如,您可以爲在415-555-2222和415-555-1111之間發送的任何消息存儲唯一的cookie,這與在415-555-3333和415-555-1111之間使用的cookie不同。

+0

如果您不需要跟蹤2個號碼之間的多個對話,這將起作用。假設415-555-2222和415-555-1111正在交換關於2個不同主題的消息。 – 2014-11-10 19:11:38

+0

我對Cookie實際設置的位置感到困惑。如果您在頁面上搜索'cookie',則該術語不會出現在任何地方的代碼中。我錯過了什麼? – 2015-08-05 15:59:37

1

我遇到了這個最近發現,解釋得很好使用@xmjw提到

How users can send text messages to each other over Twilio

儘管應用程序是不同的池想法的文章,這個概念在這裏是排序的相同。對於任何可能遇到此問題並需要其他解決方案的人。

我最終在我的解決方案中做的是生成唯一的響應代碼。然後在答覆中,我可以查詢響應代碼和來自編號以與原始文本相關聯。就我而言,這是一個雙方的人。對於像服務器那樣自動化的一方,您可以根據代碼的內容對文本進行分析,然後使用該代碼返回。那麼你只需要SELECT * FROM messages WHERE code = ?