我正在我的网站上使用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;
基于以下两个帮助文档的科学怪人:
谢谢您的协助!
更新:
这里是根据您显示给我的内容的更新alert-response.php
。进行一些小的更改后,调试器中没有出现任何错误,但是我也没有得到任何SMS答复。有什么想法吗?
注意:由于wepaste.com不再存在,因此缺少以下代码参考:((此外,我无法正确格式化PHP代码,因此实际上可以在此处发布它,所以我想我将使用某些第三方剪贴板网站?希望这不违反规则吗?)http://www.wepaste.com/46258103/
似乎您已经很接近答案了。
当Twilio收到SMS(Inbound SMS
)时,它可以调用服务器中的特定URL端点(HTTP Request
)。
网页(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开发人员推广人员在这里。