سؤال

لدي تطبيق يعمل مع 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'

ثم في تلك الصفحة ، يمكنني فقط أن أقول ما إذا (! فارغة ($ مكتملة)) افعل شيئًا (يجب أن أعمل في منطقتي ، لكنني أريد فقط التأكد من أنني أحصل على الفكرة العامة)

هل كانت مفيدة؟

المحلول

أفضل طريقة لحل ذلك هي استخدام عنوان URL للمكانة. يمكنك تعيين عنوان URL هذا للمكالمات الواردة في تكوين الأرقام في حسابك ، أو من خلال وسيطة اختيارية للمكالمات الخارجية.

عند اكتمال المكالمة ، سيتم نشر Twilio (أو الحصول على) إلى عنوان URL مع كل نفس المتغيرات يمر أثناء الطلب العادي. ال CallStatus سيتم ضبط المتغير على completed.

إذا تم استدعاء عنوان URL هذا قبل أن تحصل على إدخال من المستخدم (إلى البرنامج النصي `/process_gather.php ') ، فقد علقت.

ملاحظة: يمكنك استخدام ملفات تعريف الارتباط لإدارة حالة الجلسة ضمن مكالمة: جميع الطلبات المقدمة من Twilio أثناء نفس المكالمة (وطلب statusCallback) ستحتوي على أي ملفات تعريف الارتباط التي ترسلها. يتيح لك ذلك استخدام متغير جلسة لتتبع تقدم المكالمة.

مثال PHP ل /proces_gather.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.
 ?> 

مثال PHP ل /status_callback.php, ، والتي يجب تكوينها على أنها عنوان URL لـ statusCallback لرقم الهاتف في شاشة حساب Twilio:

<?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.
}
?>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top