2011-12-22 10 views
1

Twilio APIを使用してSMSテキストメッセージを受信して​​います。受信したメッセージの番号と本文を保存します。それはxmlのPHPページで受信されている、私は別のPHPページの真ん中でそれを使用したい。それについてどうすればいいですか? メッセージはPost要求を介して受信されています。twilioはxml phpファイルが受信されると更新します。Twilio API - 受信テキストメッセージから返信を保存する

これは、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 
     }; 
    ?> 

最後の数行で文が動作していないようです「場合」。代わりにjavascript(& jquery)を使用する必要がありますか?どうやって?私は初心者ですので、親切にしてください...

ありがとう!

アップデート1:

あなたが示唆したように、私は、データベースに保存しようとした、そしてそれはまだ動作していない... :(

ここでは、新しいコードです:

<?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:

さて、私はそれをデバッグしました。今回は、私がpで問題があったathですが、このコードは現在動作しています!

ありがとうございました:-)

答えて

1

PHPはテキストメッセージに関する情報をどこにも保存しないので、あなたはそれを失います。あなたの記述はPHPファイルが2回ロードされることを意味します最初にTwilioサーバーがPHPファイルを読み込み、Evil <レスポンス>を読んでください。

2回目に、あなたのWebブラウザにPHPファイルが読み込まれます。$_POST変数はブラウザ(Twilioリクエスト)の情報に依存するので、どちらの場合も同じではありません。つまり、データをどこかに保存する必要があるため、失われることはありません。 Twilioが要求を出した後、ファイルやデータベースからデータをロードすると、データベースを使用するか、テキストファイルに書き込むことができます。これは複数の受信テキストメッセージを受信した場合にも役立ちます。すべてのメッセージをファイルまたはデータベースに保存できます。

+0

さて、説明してくれてありがとう!私は今、それを取得すると思う、それはこのページを実行してtwilioですので、私はそれを一度実行し、彼らが私を送るデータを保存して、どこか他の場所からこの出力を得ることを確認してください(例えば、db/textファイル) 。 –

+0

twilioがこのファイルを実行した後、別のWebページにリダイレクトして何かを続けることはできますか? –

+0

あなたはリダイレクトしますか?自分のリクエストをウェブサイトやTwilioサーバーにリダイレクトしますか? –

0

あなたはこのコードのどこにも保存していません。あなたはそれを出力しています。あなたはそれをTwilioに戻す代わりに何らかのデータベースに保存する必要があります(これは<Response>ブロック外のものを無視します)。

JavaScriptは2つの理由でこれで動作しません。 XMLファイル、TwilioはJSコードを実行しません

+0

私はそれをtwilioにエコーしようとしていませんでした。私は、このXMLを別のPHPページに送ることができるように、それをページにエコーすることを考えていました。私はそれをどうすればいいのですか?どちらかのDBを介して?またはセッション? –

+0

このページは、あなたがTwilioに送信している応答ですので、Twilioに送信しています。セッションはTwilioのセッションクッキーであり、あなたのセッションクッキーではないため、セッションは機能しません。データベースが必要です。 – ceejayoz

+0

さて、私はそれを試してみましょう。ありがとう! –

関連する問題