Twilio API - Хранение ответов от входящих текстовых сообщений - PullRequest
1 голос
/ 22 декабря 2011

Я использую Twilio API для получения SMS-сообщений.Я хочу сохранить номер и тело полученного сообщения.Он получен на странице php xml, я хочу использовать его в середине другой страницы php.Как я должен идти об этом?Сообщение принимается с помощью запроса Post, twilio обновляет файл php xml после его получения.

Это код xml php файла:

    <?php
         header("content-type: text/xml");
         echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
    ?>
    <Response>
        <Sms>Hello again, Dr. Evil</Sms>
    </Response>
    <?php
        $body = $_POST['Body'];
        $responder = $_POST['From'];
        if ($body) {  
        // if some response has been received, tell us what it is  
           // echo "<Body>".$body."</Body>"; <--wrong
           // echo "<Responder>".$responder."</Responder>"; <--wrong
        };
    ?>

Кажется, что оператор if в последних нескольких строках не работает.Должен ли я использовать вместо этого javascript (& jquery)?как?Я новичок, так что будьте добры ...

Спасибо!

Update1:

Я попытался сохранить в базе данных, как вы предложили, иэто все еще не работает ...: (*

Вот новый код:

    <?php
        header("content-type: text/xml");
        echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
    ?>
    <Response>
        <Sms>Hows it going, Dr. Evil</Sms>
    </Response>
    <?php
        $body = $_POST['Body'];
        $responder = $_POST['From'];
        if ($body) { 
            require_once "../includes/functions.php";
            connectDatabase();
            //storing message and sender in database                                                        
            mysql_query("INSERT INTO sms_received (responder, body) 
                        VALUES ('$responder', '$body')");
            mysql_close();
        };
    ?>

Update2:

Хорошо, я отладил его, в прошлый раз у меня была проблема с путем, но этот код работает сейчас !!!

Спасибо всем: -)

Ответы [ 2 ]

1 голос
/ 22 декабря 2011

PHP не будет хранить информацию о текстовом сообщении где-либо, поэтому вы потеряете ее. То, что вы описываете, означает, что ваш PHP-файл будет загружен два раза. В первый раз сервер Twilio загрузит ваш PHP-файл и прочитает Evil .

Во второй раз вы загрузите файл PHP в свой веб-браузер. Переменная $_POST зависит от информации в вашем браузере (и в запросе Twilio), поэтому она не будет одинаковой для обоих случаев. Это означает, что вам нужно где-то сохранить данные, чтобы они не потерялись. Вы можете использовать базу данных или записать ее в текстовый файл, когда Twilio сделает запрос, а затем загрузить данные из файла или базы данных позже. Это также помогает в случае, если вы получаете более одного входящего текстового сообщения - вы можете сохранить их все в файле или в базе данных.

0 голосов
/ 22 декабря 2011

Вы не храните его нигде в этом коде.Вы просто выводите это.Вам нужно будет сохранить его в какой-то базе данных, а не возвращать его в Twilio (который будет игнорировать все, что находится за пределами блока <Response>.

JavaScript не будет работать в этом случае в течение двухпричины - это файл XML, а Twilio не выполняет код JS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...