gpt4 book ai didi

php - 挂断 Twilio 时提交 POST 数据

转载 作者:可可西里 更新时间:2023-11-01 00:11:22 26 4
gpt4 key购买 nike

我有一个使用 Twilio 运行的应用程序。这个想法是你将调用一个电话号码,twilio 会接听并为你提供菜单选项。一旦你按下一个数字,它就会提交发布数据然后挂断(这部分工作正常)答案...我在他们的文档中找到了以下代码。

<?xml version="1.0" encoding="UTF-8"?>
<!-- page located at http://example.com/gather_hints.xml -->
<Response>
<Gather action="/process_gather.php" method="GET">
<Say>Enter something, or not</Say>
</Gather>
<Redirect method="GET">
/process_gather.php?Digits=TIMEOUT
</Redirect>
</Response>

问题是您需要等到消息结束才能让收集超时。有没有办法让它一开始就这样做,如果用户挂断它会做一些事情,比如转到重定向标签?

谢谢!

编辑:所以在 process_gather.php 页面上,我可以将完成状态保存为变量吗?

$Completed = $_POST["completed"]; //which would set $Completed == 'completed'

然后在该页面中我基本上可以说如果 if(!empty($Completed)) 做某事(我必须将其纳入我的逻辑,但我只是想确保我了解总体思路)

最佳答案

解决此问题的最佳方法是使用 StatusCallback URL。您可以在帐户的号码配置中为入站调用设置此 URL,或通过可选参数为出站调用设置此 URL。

当调用完成时,Twilio 将 POST(或 GET)到包含所有 same variables 的 URL。它在正常请求期间通过。 CallStatus 变量将设置为 completed

如果在您从用户那里获得输入(到您的 `/process_gather.php' 脚本)之前调用了该 URL,那么他们就会挂断。

注意:您可以使用 cookie 来管理调用中的 session 状态:Twilio 在同一调用期间发出的所有请求(以及 StatusCallback 请求)都将包含您发送的任何 cookie。这允许您使用 session 变量来跟踪调用进度。

/proces_gather.php 的 PHP 示例:

 <?php 
session_start();
// adds it to our session
$_SESSION['gather_result']=$_POST["Digits"];
// then do whatever else you want your gather script to do.
?>

/status_callback.php 的 PHP 示例,应将其配置为 Twilio 帐户屏幕中电话号码的 StatusCallback URL:

<?php
session_start();
//check for gather_result
if(isset($_SESSION['gather_result'])){
//user did enter digits
} else {
//do whatever you want to do if the user entered no digits.
}
?>

关于php - 挂断 Twilio 时提交 POST 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4305221/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com