2017-08-13 6 views
1

Twilio経由でSMSをリクエスト本体に指定された電話番号に送信する方法を知っていますが、ユーザーがテキストメッセージで応答するのを待ちます。私はそのメッセージ本文をキャプチャし、それを応答として送信する必要があります。Twilioを使用してSMSを送信し、NodeJSで電話からの応答を待つ方法

router.post('/', function(req, res){ 

    var customerNumber = req.body.mobileNumber; 
    var twilioNumber = process.env.TWILIO_NUMBER; 

    client.messages 
     .create({ 
      to: '+1' + customerNumber, 
      from: twilioNumber, 
      body: 'message to user', 
      provideFeedback: 'true', 
     }, function(err, message){ 
      if(err) res.send('message err: ' + err); 
      else{ 
      // wait 10-20 seconds for user to respond 
      res.send("A response from the user"); 
      } 
     })  
}); 

私はまた、Twilioとの応答を監視する方法を知っているが、私は以下のルートで、ユーザーから取得するメッセージで応答するために、上記のルートを必要とするので、これは動作しません。

router.post('/sms-response', function(req, res){ 
    var twilio = require('twilio'); 
    var twiml = new twilio.twiml.MessagingResponse(); 
    twiml.message('thanks for your feedback'); 
    res.writeHead(200, {'Content-Type':'text/xml'}); 
    res.end(twiml.toString()); 
}); 

私はまったく成功して一日これを行う方法を探してきました。私はあなたの助けに感謝します!

答えて

1

私はそれがまだ可能であるかどうかは分かりませんが、私は彼らのドキュメントを見て、まだその機能を見ていませんでした。 socket.ioのようなWebソケットを使用することをお勧めします。メッセージが入ったら、ソケットを介してユーザーに応答を渡すことができます。

1

ここではTwilioの開発者エバンジェリストです。

これは技術的に可能かもしれませんが、私はそれを強く推奨します。あなたは10〜20秒待っているかもしれないと言いますが、モバイルネットワークと同様にユーザーはそれよりずっと気まずいです。したがって、応答を得るにはそれよりずっと長くかかります。その後、決して来ないかもしれない応答を待つサーバーへの長時間の接続を残しておきます。

Hammerが示唆しているように、「返事を待っています」というような応答をユーザーにすぐに返し、websocketまたはserver sentイベントを介してそのユーザーのブラウザをサーバーに接続する方がよいでしょう。ストリーム。 Webhookエンドポイントで着信メッセージを受信すると、WebSocketまたはイベントソースの情報を送信し、フロントエンドの情報に反応することができます。

それがまったく役に立ったら教えてください。

関連する問題