问题描述
我对正在构建的应用程序进行了 Twilio 集成设置。该应用程序允许用户向/从 Twilio 电话号码发送和接收文本消息。
例如,假设您是用户。创建帐户时,您会收到一个电话号码——该电话号码是通过 Twilio 购买和管理的。然后,您可以使用此电话号码发送和接收常规短信。
发送很简单,只需调用 Twilio API。
为了接收,我正在使用 webhook 集成。意思是,我在 https://my-website.com/api/sms/receive
有一个托管服务器。每当外部人员向 Twilio 电话号码发送短信时,Twilio 都会向我的服务器发送 HTTP POST 请求。
问题: Twilio 会立即自动回复带有 OK
的外部人员电话号码。我找不到有关如何防止这种情况发生的任何文档。
我将提供一个真实用例作为示例。
说 Bob 是我的应用程序的用户。 Bob 通过我的应用获得了 Twilio 电话号码。 Bob 想给 Alice 发送一条短信。 Alice 不是应用程序的用户——他们只是一些外部人士。 Bob 正在使用该应用通过 Alice 的普通电话号码与 Alice 通信。
- Bob 通过 Twilio 集成向 Alice 发送文本
- Alice 在手机上收到短信
- Alice 回复 Bob 的文字
- Twilio 触发我的服务器 webhook 集成
- Twilio 会立即用
OK
自动回复 Alice
(5.) 是问题所在——我不希望这种情况发生
解决方法
我找到了解决方案。原来 webhook API 需要使用 TwiML(Twilio Markdown Language)来指示 Twilio 不要响应。 https://support.twilio.com/hc/en-us/articles/223134127-Receive-SMS-and-MMS-Messages-without-Responding
具体来说,我的服务器只返回 Content-Type
的 text/html
而正文只是 <Response></Response>