未调用Twilio回调URL-PHP&;Wordpress
我正在尝试将Twilio集成到我的Wordpress网站上 这个想法是允许用户输入他们的电话号码,以获得我们应用程序的下载链接。我们在这里建立了一个简单的表单——提交表单后,运行evntrpp.php代码 使用模板代码,我们可以很容易地获得表单,以便使用免费的Twilio号码将消息发送到已验证的号码(当前位于“收件人”字段中的号码)。但是,当我们添加StatusCallback参数时,它从不调用我们的callback.php代码。evntrpp.php和callback.php都在根目录-evntr.co/中未调用Twilio回调URL-PHP&;Wordpress,php,wordpress,twilio,Php,Wordpress,Twilio,我正在尝试将Twilio集成到我的Wordpress网站上 这个想法是允许用户输入他们的电话号码,以获得我们应用程序的下载链接。我们在这里建立了一个简单的表单——提交表单后,运行evntrpp.php代码 使用模板代码,我们可以很容易地获得表单,以便使用免费的Twilio号码将消息发送到已验证的号码(当前位于“收件人”字段中的号码)。但是,当我们添加StatusCallback参数时,它从不调用我们的callback.php代码。evntrpp.php和callback.php都在根目录-evn
<?php
require 'twiliophp/Services/Twilio.php';
$AccountSid = "--------";
$AuthToken = "---------";
$client = new Services_Twilio($AccountSid, $AuthToken);
$phonenum = $_POST["phonenum"];
$callbackURL = "https://evntr.co/callback.php";
$client->account->messages->create(array(
'To' => "XXXXXXXXXX",
'From' => "+XXXXXXXXXX",
'Body' => "Test Message",
'StatusCallback' => "https://evntr.co/callback.php",
));
?>
我的理解是,流程应该是这样的:
但是,每次我提交表单时,都会发送消息,页面只停留在evntr.co/evntrpp.php,而不会加载callback.php。也许这是我对回调URL工作方式的误解?或者可能StatusCallback参数不能与免费的Twilio号码一起使用?回调的工作方式与您认为的不同 调用结束回调(StatusCallback)请求 在收到呼叫、从应用程序请求TwiML、进行处理并最终结束呼叫后,Twilio将向为被调用的Twilio号码(如果有)配置的StatusCallback URL发出异步HTTP请求。通过为您的Twilio号码提供StatusCallback URL并捕获此请求,您可以确定通话何时结束并接收有关通话的信息
--这里是Twilio开发者福音传道者 Twilio回调没有按预期工作,这是正确的。正如McCann指出的,请求是从Twilio异步发出的,并发送到您提供的URL。您可以使用回调跟踪消息的进度,但不影响用户发出的请求 因此,在您的示例中,您可能希望在发送消息后呈现某些内容:
<?php
require 'twiliophp/Services/Twilio.php';
// other stuff
$client->account->messages->create(array(
'To' => $phonenum,
'From' => "+14708655xxx",
'Body' => "Test Message",
'StatusCallback' => "https://evntr.co/callback.php",
));
?>
<h1>You should receive an SMS, click the link in the SMS to download the app on the platform of choice.</h1>
你应该收到一条短信,点击短信中的链接,在选择的平台上下载应用程序。
当然,比普通的
更具风格!或者,您可以重定向到显示成功消息的页面。(PHP不是我最擅长的科目,但是)
祝你好运,如果你还有任何关于Twilio的问题,请告诉我
[编辑]
如评论中所述,如果您想查看API请求是否成功,您需要执行以下操作:
<?php
require 'twiliophp/Services/Twilio.php';
// other stuff
try {
$client->account->messages->create(array(
'To' => $phonenum,
'From' => "+14708655xxx",
'Body' => "Test Message",
'StatusCallback' => "https://evntr.co/callback.php",
));
// Success! Redirect to success page!
header("Location: http://evntr.co/success.php");
die();
} catch (Services_Twilio_RestException $e) {
// Something went wrong!
// Do something about it!
}
?>
因此,将API调用包装在try/catch块中并适当地响应应该可以捕获来自错误电话号码或其他API错误的大多数错误。它不能保证短信已经发送(您将从回调webhook获得),但它可以保证您已经尽了一切努力发送短信。Ah,所以在发送消息后,我重定向到我的页面-evntr.co/callback.php-然后根据状态消息做出反应。您是否有关于如何捕获发送到该回调url的状态消息的示例代码?我尝试了一个简单的变量-$_POST['SmsStatus']),但没有显示任何内容。啊,不,你的重定向完全独立于Twilio的任何状态回调。它们是异步发生的,与RESTAPI调用的范围无关。这可能是立即的,也可能需要几分钟,所以我不会基于它们进行任何用户交互。我不确定您试图通过回调实现什么样的用户交互,所以我不确定如何从这一点指导您。明白了。我试图将用户引导到成功页面或失败页面(例如,twilio由于无效数字而无法发送文本)。我可能处理得不对。我在回答中添加了一些可能会有所帮助的内容。你觉得怎么样?这很有效。那么回调url的用例是什么?我似乎一直在处理这个错误。