php - 如何使用 Twilio 进行 "pass-through"短信交换?

标签 php sms twilio twilio-twiml

出于某种原因,我很难理解 Twilio 模型的工作原理;因此,我试图通过猜测来编写解决方案(我讨厌做的事情。)我希望有人能帮助解决这个困惑。

我已经设置了转发器,这样当有人向我的 Twilio 号码发送文本时,我的手机就会收到它。问题是,当我回复该文本时,它会转到 Twilio 而不是返回给原始发件人。

我尝试将我的号码作为标签中的“来自”字符串传递,但这被 Twilio 拒绝,因为它不是有效的 Twilio 号码。

<?php header('Content-Type: text/html'); ?>
<Response>

  <!-- ****** This gets rejected: ****** -->
  <!-- Message to="<?=$_REQUEST['PhoneNumber']?>" from="<?=$_REQUEST['From']?>" -->

  <Message to="<?=$_REQUEST['PhoneNumber']?>">
    <?=htmlspecialchars(substr($_REQUEST['From'] . $_REQUEST['Body'], 0, 1600))?>
  </Message>
</Response>

最佳答案

当一条消息从 Twilio 转发给您时,您需要知道发出该消息的电话号码。

当您发送消息时,您需要告诉 Twilio 将您的消息发送到哪里。

因此,按照如下约定:消息以电话号码开头,然后是 /,然后是实际消息,您可以将此代码用于 webhook。

<?php
    header("content-type: text/xml");
    echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
?>

<?php 

$myPhoneNumber = "+15557779999"; 

if ($_REQUEST['From'] == $myPhoneNumber) {
    $message = explode("/", htmlspecialchars(substr($_REQUEST['Body'], 0, 1600)));
    $theOtherPhoneNumber = $message[0];
    $theOtherMessage = $message[1];
    echo(
        "<Response>
          <Message to=\"{$theOtherPhoneNumber}\">
            {$theOtherMessage}
          </Message>
        </Response>"
    );  

} else {
    $message = htmlspecialchars(substr($_REQUEST['From'] ."/ " .$_REQUEST['Body'], 0, 1600));
    echo(
        "<Response>
          <Message to=\"{$myPhoneNumber}\">
            {$message}
          </Message>
        </Response>"
    );

}

?>

如您所见,代码会检查您的电话号码。如果 Twilio 收到的消息来自您的号码,那么代码会将其发送到您在消息开头输入的号码。您的消息应该是这样的:

+15553331111/ Hey, how is going?

如果您需要更详细的内容,Twilio 有一些关于屏蔽电话号码的教程。 https://www.twilio.com/docs/tutorials

关于php - 如何使用 Twilio 进行 "pass-through"短信交换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37910903/

相关文章:

php - Zend_Search_Lucene查询解析问题

php - 网站/数据库文本编码问题

PHP 错误,成员初始化程序中 array() 中的串联

web-services - 通过短信调用Web服务API

php - Twilio 通知服务批量短信与图像

twilio - 如何将Twilio号码转发到VoIP电话?

php - 如何将 MySQL 存储过程中的选定值存储到 PHP 中的变量中?

安卓。使用服务拦截符合条件的短信

android - 如何从Android应用程序发送和接收短信?

java - 通过 Twilio 发送带有链接的短信