Twilio - 如何根据传入消息的正文发送短信?
Twilio - how to send an SMS based on body of incoming message?
我在我的网站上使用 Twilio PHP API。目标是让我们的游戏家族成员填写一份表格,其中包括他们的姓名和手头的问题。然后,一条文本将被发送到预定的管理员列表,这些管理员有权修复服务器。
这部分效果很好。我可以在我的网站上填写表格,它会毫无问题地发送文本。
<?php
require_once "autoload.php";
use Twilio\Rest\Client;
$AccountSid = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$AuthToken = "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy";
$client = new Client($AccountSid, $AuthToken);
$sms = $client->account->messages->create(
$_REQUEST["to"],
array(
'from' => "+zzzzzzzzzz",
'body' => "Help!". $_REQUEST["name"]. " says "
. $_REQUEST["message"]."
. Reply GOTIT to alert other techs."
)
);
我希望管理员能够回复 "GOTIT" 以提醒其他管理员有人已经在处理该问题。当我的 Twilio 号码收到 "GOTIT" 文本时,我希望它向预定的管理员列表发送预定的 SMS(此处不需要动态)。
我已将 webhook 配置为指向我的 alert-response.php
文件(如下)。
到目前为止,我能找到的唯一 Twilio 文档是关于回复消息发件人的(我想回复指定的用户列表)
https:// www.twilio.com/docs/guides/how-to-receive-and-reply-in-php#what-is-a-webhook
有没有人给我任何起点?我已经试过了,但没有成功 (alert-response.php
):
<?php
require_once "autoload.php";
use Twilio\Rest\Client;
// make an associative array of senders we know,
// indexed by phone number
$people = array(
"+zzzzzzzzzz"=>"Tech 1",
"+zzzzzzzzzz"=>"Tech 2",
"+zzzzzzzzzz"=>"Tech 3",
);
// if the sender is known, then greet them by name
// otherwise, consider them just another monkey
if(!$name = $people[$_REQUEST['From']]) {
$name = "unknown";
}
$body = $_REQUEST['body'];
if( $body == 'GOTIT' ){
$response->message('$name GOTIT message. Reply HELP for help.');
}else if( $body == 'HELP' ){
$response->message('$name HELP message.');
}
print $response;
基于以下两个帮助文档的科学怪人:
- https: //www.twilio.com/docs/quickstart/php/sms/replying-to-sms-messages
- https: //www.twilio.com/docs/guides/how-to-receive-and-reply-in-php#custom-responses-to-incoming-sms-messages
在此先感谢您的帮助!
已更新:
这是根据您向我展示的内容更新的alert-response.php
。经过一些小的更改后,调试器中没有出现任何错误,但我也没有收到任何 SMS 回复。对此有什么想法吗?
注意:由于 wepaste.com 不再存在,因此缺少以下代码参考:
(此外,我无法让 PHP 代码正确格式化,所以我实际上可以 post 它在这里,所以我想我会使用一些第三方剪贴板网站?希望是不违反规则?)
http://www.wepaste.com/46258103/
看来你已经很接近答案了
当 Twilio 收到短信 (Inbound SMS
) 时,它可以调用您服务器 (HTTP Request
) 中的特定 URL 端点。
网页(HTTP Response
)将作为回复(Outbound SMS
)发回给用户的内容。因此,print $response;
打印将作为对 Inbound SMS
.
作者的回复发送的消息的内容
如果您想向其他用户发送消息作为对该消息的反应,您需要添加更多代码来创建新消息。
您的 alert-response.php
既可以回复发件人也可以向其他管理员发送消息:
<?php
require_once "autoload.php";
use Twilio\Rest\Client;
// make an associative array of senders we know, indexed by phone number
$people = array(
"+zzzzzzzzzz"=>"Tech 1",
"+zzzzzzzzzz"=>"Tech 2",
"+zzzzzzzzzz"=>"Tech 3",
);
// if the sender is known, then greet them by name
// otherwise, consider them just another monkey
if(!$name = $people[$_REQUEST['From']]) {
$name = "unknown";
}
$body = $_REQUEST['body'];
if( $body == 'GOTIT' ){
// response to admin that send GOTIT
$response->message('Thanks for taking care of it.');
// now creates a message to tell other admins that someone
// is taking care of it
$client = new Client($AccountSid, $AuthToken);
$sms = $client->account->messages->create(
TO,
array(
'from' => "+zzzzzzzzzz",
'body' => "Looks like $name is taking care of this server alert!"
);
);
}else if( $body == 'HELP' ){
// response to the admin that replied with HELP
$response->message('Ok. I will tell others that you need help');
// now creates a message to tell other admins that someone
// is taking care of it
$client = new Client($AccountSid, $AuthToken);
$sms = $client->account->messages->create(
TO,
array(
'from' => "+zzzzzzzzzz",
'body' => "Looks like $name needs help!!"
);
}
// keep in mind that response is sent to the person that sent the
// SMS in first place, not to the other admins.
print $response;
这里是 Twilio 开发人员布道者。
当responding to an incoming SMS message with TwiML if you use a <Message>
没有属性时,响应会返回原来的号码。
但是,您也可以使用 to
attribute 指示 Twilio 向其他号码发送消息。您还可以通过返回多个 <Message>
元素来发送多条消息。
将这两件事加在一起意味着您可以执行以下操作:
<?php
require_once './vendor/autoload.php';
use Twilio\Twiml;
$people = array(
"+zzzzzzzzzz"=>"Tech 1",
"+zzzzzzzzzz"=>"Tech 2",
"+zzzzzzzzzz"=>"Tech 3",
);
if(!$name = $people[$_REQUEST['From']]) {
$name = "unknown";
}
$response = new Twiml();
foreach ($people as $number => $techName) {
$response->message('Looks like $name is taking care of this server alert!', ['to' => $number]));
}
echo $response;
如果有帮助请告诉我。
我在我的网站上使用 Twilio PHP API。目标是让我们的游戏家族成员填写一份表格,其中包括他们的姓名和手头的问题。然后,一条文本将被发送到预定的管理员列表,这些管理员有权修复服务器。
这部分效果很好。我可以在我的网站上填写表格,它会毫无问题地发送文本。
<?php
require_once "autoload.php";
use Twilio\Rest\Client;
$AccountSid = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$AuthToken = "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy";
$client = new Client($AccountSid, $AuthToken);
$sms = $client->account->messages->create(
$_REQUEST["to"],
array(
'from' => "+zzzzzzzzzz",
'body' => "Help!". $_REQUEST["name"]. " says "
. $_REQUEST["message"]."
. Reply GOTIT to alert other techs."
)
);
我希望管理员能够回复 "GOTIT" 以提醒其他管理员有人已经在处理该问题。当我的 Twilio 号码收到 "GOTIT" 文本时,我希望它向预定的管理员列表发送预定的 SMS(此处不需要动态)。
我已将 webhook 配置为指向我的 alert-response.php
文件(如下)。
到目前为止,我能找到的唯一 Twilio 文档是关于回复消息发件人的(我想回复指定的用户列表)
https:// www.twilio.com/docs/guides/how-to-receive-and-reply-in-php#what-is-a-webhook
有没有人给我任何起点?我已经试过了,但没有成功 (alert-response.php
):
<?php
require_once "autoload.php";
use Twilio\Rest\Client;
// make an associative array of senders we know,
// indexed by phone number
$people = array(
"+zzzzzzzzzz"=>"Tech 1",
"+zzzzzzzzzz"=>"Tech 2",
"+zzzzzzzzzz"=>"Tech 3",
);
// if the sender is known, then greet them by name
// otherwise, consider them just another monkey
if(!$name = $people[$_REQUEST['From']]) {
$name = "unknown";
}
$body = $_REQUEST['body'];
if( $body == 'GOTIT' ){
$response->message('$name GOTIT message. Reply HELP for help.');
}else if( $body == 'HELP' ){
$response->message('$name HELP message.');
}
print $response;
基于以下两个帮助文档的科学怪人:
- https: //www.twilio.com/docs/quickstart/php/sms/replying-to-sms-messages
- https: //www.twilio.com/docs/guides/how-to-receive-and-reply-in-php#custom-responses-to-incoming-sms-messages
在此先感谢您的帮助!
已更新:
这是根据您向我展示的内容更新的alert-response.php
。经过一些小的更改后,调试器中没有出现任何错误,但我也没有收到任何 SMS 回复。对此有什么想法吗?
注意:由于 wepaste.com 不再存在,因此缺少以下代码参考: (此外,我无法让 PHP 代码正确格式化,所以我实际上可以 post 它在这里,所以我想我会使用一些第三方剪贴板网站?希望是不违反规则?) http://www.wepaste.com/46258103/
看来你已经很接近答案了
当 Twilio 收到短信 (Inbound SMS
) 时,它可以调用您服务器 (HTTP Request
) 中的特定 URL 端点。
网页(HTTP Response
)将作为回复(Outbound SMS
)发回给用户的内容。因此,print $response;
打印将作为对 Inbound SMS
.
如果您想向其他用户发送消息作为对该消息的反应,您需要添加更多代码来创建新消息。
您的 alert-response.php
既可以回复发件人也可以向其他管理员发送消息:
<?php
require_once "autoload.php";
use Twilio\Rest\Client;
// make an associative array of senders we know, indexed by phone number
$people = array(
"+zzzzzzzzzz"=>"Tech 1",
"+zzzzzzzzzz"=>"Tech 2",
"+zzzzzzzzzz"=>"Tech 3",
);
// if the sender is known, then greet them by name
// otherwise, consider them just another monkey
if(!$name = $people[$_REQUEST['From']]) {
$name = "unknown";
}
$body = $_REQUEST['body'];
if( $body == 'GOTIT' ){
// response to admin that send GOTIT
$response->message('Thanks for taking care of it.');
// now creates a message to tell other admins that someone
// is taking care of it
$client = new Client($AccountSid, $AuthToken);
$sms = $client->account->messages->create(
TO,
array(
'from' => "+zzzzzzzzzz",
'body' => "Looks like $name is taking care of this server alert!"
);
);
}else if( $body == 'HELP' ){
// response to the admin that replied with HELP
$response->message('Ok. I will tell others that you need help');
// now creates a message to tell other admins that someone
// is taking care of it
$client = new Client($AccountSid, $AuthToken);
$sms = $client->account->messages->create(
TO,
array(
'from' => "+zzzzzzzzzz",
'body' => "Looks like $name needs help!!"
);
}
// keep in mind that response is sent to the person that sent the
// SMS in first place, not to the other admins.
print $response;
这里是 Twilio 开发人员布道者。
当responding to an incoming SMS message with TwiML if you use a <Message>
没有属性时,响应会返回原来的号码。
但是,您也可以使用 to
attribute 指示 Twilio 向其他号码发送消息。您还可以通过返回多个 <Message>
元素来发送多条消息。
将这两件事加在一起意味着您可以执行以下操作:
<?php
require_once './vendor/autoload.php';
use Twilio\Twiml;
$people = array(
"+zzzzzzzzzz"=>"Tech 1",
"+zzzzzzzzzz"=>"Tech 2",
"+zzzzzzzzzz"=>"Tech 3",
);
if(!$name = $people[$_REQUEST['From']]) {
$name = "unknown";
}
$response = new Twiml();
foreach ($people as $number => $techName) {
$response->message('Looks like $name is taking care of this server alert!', ['to' => $number]));
}
echo $response;
如果有帮助请告诉我。