2017-07-27 54 views
0

這裏是我的代碼Twilio調用函數 - 總是重複「請輸入您的ID」?

exports.handler = function(context, event, callback) { 

    let twiml = new Twilio.twiml.VoiceResponse(); 
    let gather = twiml.gather({ 
     input: 'dtmf', 
     finishOnKey: '#' 
    }); 
    gather.play("Please enter your user ID"); 
    callback(null, twiml); 

    var got = require('got'); 
    var requestPayload = event; 
    got.post('http://www.test.com/test.php?test=' + JSON.stringify(requestPayload), { 
      body: JSON.stringify(requestPayload), 
      headers: { 
       'accept': 'application/json' 
      }, 
      json: true 
     }) 
     .then(function(response) { 
      console.log(response.body) 
      callback(null, response.body); 
     }) 
     .catch(function(error) { 
      callback(error) 
     }) 


}; 

我從URL成功的響應,但我要問的第二個問題。如何從這裏繼續。

謝謝

+0

HTTP請求做了什麼?你期望從它那裏得到什麼回報? – philnash

+0

我的HTTP請求檢查用戶是否存在,如果存在則返回1 else 0。 然後會有第二個問題 –

+0

我已經成功回覆了.SO在PHP響應中沒有pblm。在得到迴應之後,我需要知道如何在此函數中添加第二個問題。謝謝 –

回答

1

Twilio開發人員傳道這裏。

如果你只想使用這一個功能,那麼你需要它做不同的事情取決於用戶是否剛剛打電話或他們是否輸入了一些數字。

我已經重新安排你的代碼了一下,留下意見,指導您:

const got = require('got'); 

exports.handler = function(context, event, callback) { 

    // We can set up our initial TwiML here 
    let twiml = new Twilio.twiml.VoiceResponse(); 
    let gather = twiml.gather({ 
    input: 'dtmf', 
    finishOnKey: '#' 
    }); 

    if(event.Digits) { 

    // The user has entered some digits to answer the question so we post to 
    // your API and only callback when we get the results 
    got.post('http://www.test.com/test.php', { 
     body: JSON.stringify(event), 
     headers: { 
      'accept': 'application/json' 
     }, 
     json: true 
    }) 
    .then(function(response) { 

     // Check the response and ask your second question here 

     gather.say("Please enter your case ID."); 
     callback(null, twiml); 
    }) 
    .catch(function(error) { 
     // Boo, there was an error. 
     callback(error) 
    }); 
    } else { 

    // The user hasn't entered anything yet, so we ask for user ID 
    gather.say("Please enter your user ID"); 
    callback(null, twiml); 
    } 
}; 

讓我知道那是你的作品。你可能會發現,如果你需要做更多的工作,那麼單個函數在這裏不是最好的主意,你應該引導用戶到一個新的函數,以在輸入案例ID後繼續調用。

讓我知道這是否有幫助。

+0

謝謝:)將檢查,讓你知道 –

+0

其工作正常:) :) ...非常感謝 –

+1

很高興聽到!與其他應用程序祝好運! – philnash