2017-07-18 113 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