По какой-то причине мне очень трудно понять, как работает модель 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
Других решений пока нет …