2017-07-18 111 views
0

我們使用twilio發送消息。Twilio Messaging - 關聯SID

我們不確定如何將響應與我們發送的消息相關聯。我們可能會向同一移動設備發送多條消息。但是,不確定如何將響應與我們發送的消息相關聯,因爲SID是不同的。

是否有反應與消息相關聯。

謝謝

回答

1

不,SMS不能這樣工作。

我給你發了5條手機短信,然後我回復了一個你沒有辦法告訴我正在回覆的人。

這不是一個Twilio限制,SMS標準沒有規定跟蹤答覆單個郵件

當我想出了一個哈克解決這一亡羊補牢。這有點牽扯,所以我想這取決於你想要多少功能。

這適用於我在Android 7.0,YMMV上使用Chrome測試版。

創建下面的代碼的PHP腳本,並把它放在你的Web服務器:

<?php 
// increase last digit as necessary to suit string length of your variable 
$smsid = substr($_SERVER["QUERY_STRING"],0,1); 

// Query database for SMS id, record timestamp of request, optionally return text to be included at the beginning of the SMS reply 
$msg= urlencode($databaseResult); 

// Remove <?body=$msg> if you just want the link to create a blank reply. Change the phone number to your incoming Twilio number. 
header("Location: sms:+1555444333?body=$msg") 

現在註冊它通過URL參數的URL縮短服務,並創建一個指向你的PHP腳本縮短的URL。我用tr.im

根據你的短信數量,你將不得不調整你的變量的長度,但是除非你將人員濫發給我,否則我會假定一個字符足以識別一個獨特的文本。

使用tr.im/SMS作爲縮短網址的例子,你可以像tr.im/SMS?A那樣在變量末尾追加一個變量,並將鏈接放在發送的SMS中。當用戶點擊鏈接時,您的服務器重定向將在手機上打開短信應用程序,併爲您的號碼創建一個文本。如果您在上面的php中包含了「?body = $ msg」,則新消息將在開始時顯示您的文本。

就我個人而言,我可能不會打擾添加文本,他們可能會刪除它,然後再發送它,它可能會混淆人。如果您將請求變量和時間戳記記錄到數據庫中,您應該可以將它們與電話號碼綁定在一起,因爲大多數人會在服務器請求幾分鐘內向您發送回覆。如果您很難關聯消息,則還可以增加自定義網址變量的長度。回覆變量一旦你有一個回覆等鏈接...

最後改變你的Twilio配置,所以你的發送短信目前的公司名稱,而不是你的Twilio號碼作爲發件人。如果發件人不是數字,則用戶不能直接回復郵件,因此他們必須使用鏈接。

爲每條消息生成一個順序標識符並將其附加到您的鏈接。將標識符與來自Twilio的相應消息Sid以及您發送的數字一起保存到數據庫中,以便稍後與之匹配。

追加「點擊tr.im/SMS?$回覆」發送短信,其中$是您的變量。

利潤。

+0

只是爲了增加這一點,你可以通過讓你的用戶在他們的響應中包含一個ID來解決這個問題,你可以從身體中解析出身份(但不可能是一個好的體驗)或者從多個號碼發送消息以便您可以將發送信息的號碼與用戶號碼相關聯。 – philnash

+0

編輯我的答案,包括一個我後來想到的hacky解決方法 – miknik