出于某种原因,我很难理解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>
答案 0 :(得分:2)
当您从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