在Twilio中他们有一个关于php中“电话民意调查”的例子 电话民意调查包含以下文件:make call.php,poll.php和process_poll.php 拨打电话php - 包含SID等并拨打电话。 poll php - 包含Gather标签中的实际民意调查问题。 如下所示:
<?php
require 'Services/Twilio.php';
$response = new Services_Twilio_Twiml();
$gather = $response->gather(array(
'action' => 'php url to hit',
'method' => 'GET',
'numDigits' => '1'
));
$gather->say("Hi question one here");
$gather->say("From 1 to 5 with 5 being the best service. How would you rate?");
header('Content-Type: text/xml');
print $response;
?>
进程轮询php包含选择选择后的下一步。为了节省空间,我不会发布下面的数据库区域。
if (isset($choices[$digit])) {
mysql_query("INSERT INTO `results` (`" . $choices[$digit] . "`) VALUES ('1')");
$say = 'Ok got it. Next question.';
} else {
$say = "Sorry, I don't have that option. Next question.";
}
// @end snippet
// @start snippet
$response = new Services_Twilio_Twiml();
$response->say($say);
$response->hangup();
header('Content-Type: text/xml');
print $response;
我的问题是如何添加其他问题。目前发生的是用户听到第一个问题。从电话簿中选择选项。在回复消息后,连接结束。我想再添加3个问题然后回复。如何实现这一目标?我是否会添加一个响应,将它们发送到第二组问题的另一个URL?
您能否就如何实现这一目标向我提供一些指导?我是一个php新手。
答案 0 :(得分:0)
好问题。您可以通过几种不同的方式来构建它。您概述的为每个问题和响应提供单独URL的方法绝对有效。在这种情况下,poll.php
将成为poll1.php
:
<?php
require 'Services/Twilio.php';
$response = new Services_Twilio_Twiml();
$gather = $response->gather(array(
'action' => 'php url to hit',
'method' => 'GET',
'numDigits' => '1'
));
$gather->say("Hi question one here");
$gather->say("From 1 to 5 with 5 being the best service. How would you rate?");
header('Content-Type: text/xml');
print $response;
?>
您希望将其处理为process_poll1.php
:
if (isset($choices[$digit])) {
mysql_query("INSERT INTO `results` (`" . $choices[$digit] . "`) VALUES ('1')");
$say = 'Ok got it. Next question.';
} else {
$say = "Sorry, I don't have that option. Next question.";
}
// @end snippet
// @start snippet
$response = new Services_Twilio_Twiml();
$response->say($say);
$response->redirect("php url to hit for next question");
header('Content-Type: text/xml');
print $response;
除了我在此文件中更改的名称之外,还有一个关键更改。我们将使用 TwiML verb将用户移至下一个投票问题,而不是挂断。要使用代码执行此操作,我们会将$response->hangup();
替换为$response->redirect("php url to hit for next question");
。您希望将其重定向到poll2.php
,然后将收集操作转到process_poll2.php
。然后根据需要继续提问。
如果有帮助,请告诉我!