我想使用短信网关发送接收短信。
发送消息时我会问一些问题,收件人会回复。
我需要在发送短信时添加一些唯一的 ID,并在接收时取回它。
我知道有一种方法可以做到这一点,例如 ICQ 和 Google vois 2 路短信。接收方将消息返回到同一号码,但只有发送方才能取回。
有人可以帮忙吗?
谢谢, 利奥尔
最佳答案
几乎所有 SMS 网关都允许您发送和接收消息。发送消息的最常见方法是通过某种 HTTP API(SOAP、REST、RPC)。例如,要使用 Twilio 发送消息(我工作的地方)您可以使用三个参数向我们的 API 发出 POST 请求:To
(收件人),From
(您的 Twilio 号码)和 Body
(消息中包含的内容)。许多其他网关也使用类似的方法。
由于全局短信系统的局限性,无法唯一标识消息。这意味着,除非消息的收件人手动包含标识符,否则除了匹配发件人和收件人的电话号码之外,无法将回复与原始消息关联起来。这可能会使处理单个收件人有多个未完成查询的情况变得棘手。您可以使用几种策略来绕过此限制。
请求唯一的响应 token - 对于发送给收件人的每个查询,要求响应对于该查询是唯一的。例如,在第一条消息中使用类似“要确认,用 A1 响应”的内容,并且在后续未完成的查询中使用不同的唯一响应。
使用不同的“发件人”电话号码 - 对于发送给收件人的每个查询,请从不同的号码发送。然后您可以将响应与响应的电话号码进行匹配。在许多情况下,这不是一个最佳系统,因为您需要更多电话号码,并且用户可能会收到来自许多不同号码的消息,从而导致困惑。
使未完成的查询过期 - 如果对每个查询的响应并不重要,则可以假设他们正在响应最近的查询,或者在响应后提示他们进行澄清。
关于接收消息,大多数网关都会通过 HTTP 通知您。例如,当一条消息进入您的 Twilio 号码时,我们会向您使用 To
指定的 URL 发出 POST 请求。 , From
和Body
包括参数。您可以像申请中的任何其他表单提交一样处理此问题。其他网关使用类似的方法,但我无法证明细节。
关于sms - 双向短信 - 发送/接收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5297176/