[英]Twilio Studio - Access DTMF Digits from a <gather> returned by a function?
[英]Twilio PCI Compliant <Gather> in Function Widget with Studio
我一直在這里四處閑逛,在使用這個新工具的過程中得到了大部分答案,但我現在被困住了,需要一些直接的建議。
Studio 中的 Gather 函數不符合 PCI,所以我必須將我的調用轉移到一個函數並返回解析后的數據——我終於想出了怎么做——但是,我發現我無法調用網絡服務包含在單個函數中,必須將帶有事件的數字發送到另一個函數,以便對我的令牌提供程序進行 Web 服務調用。 這有效,但它導致了一個奇怪的結果:我的令牌被讀回為 TTS,然后電話被掛斷了。 我沒有播放 TTS 動作。 以下是我的代碼集:
從 Studio 調用的初始函數:
const got = require('got');
exports.handler = function(context, event, callback) {
let twiml = new Twilio.twiml.VoiceResponse();
twiml.gather({
input: 'dtmf',
finishOnKey: '#',
timeout: 10,
action: 'paymenttest',
method: 'GET'
}).say('Enter CC');
console.log(twiml);
callback(null, twiml);
};
這使用輸入的數字成功調用了我的函數:
const got = require('got');
exports.handler = function(context, event, callback) {
let twiml = new Twilio.twiml.MessagingResponse();
const url ='my payment gateway' + event.Digits + '&EXPDATE=1220&CARDTYPE=VI';
got.get(url, {
headers: {
'content-Type': 'application/x-www-form-urlencoded'
}
}).then(function(response) {
// Check the response and ask your second question here
event.callback(null, response.body);
}).catch(function(error) {
// Boo, there was an error.
callback(error)
});
};
這成功返回了令牌……但如前所述……它被讀回給我,而不是包含在返回給 Studio 的數據中。
Twilio 開發者傳播者在這里。
目前,Studio 沒有很好地設置為使用 Twilio 函數中的 TwiML,然后繼續流程。 在您的情況下,當您從第二個函數返回令牌時,Twilio 正在處理它,就像您剛剛將文本返回到常規 TwiML webhook 一樣。 發生這種情況時,Twilio 默認假設您的意思是<Say>
並讀出文本。
雖然團隊致力於將呼叫重定向回 Studio 流程,但有一個解決方法。
不是在第二個函數中返回令牌,而是返回一些包含<Redirect>
的 TwiML 到您的 Studio 流的 webhook URL 並附加?FlowEvent=audioComplete
。 您還需要在 Function 小部件之后添加一個虛擬的 Say/Play 小部件(它成為流程中可以觸發“音頻完成”消息的下一個部分,因此存在以收集它並發送到下一個小部件)。
我們在解決方法中唯一沒有處理的是將令牌發送到流。 我不相信我們可以通過這種重定向解決方法來做到這一點,所以我建議將令牌存儲在您自己的數據庫或類似Twilio Sync對象的東西中。 這樣您就可以隨心所欲地在 Studio 之外使用它。 如果您在 Studio 流中需要它,那么您可以再創建一個以 JSON 形式返回令牌的函數,然后將其存儲在流變量中。
如果您更願意使用<Pay>
,因為這會容易得多,我還建議請求您需要的支付連接器。
我認為這里的 philnash answer 已經過時了,即使它仍然有效。
現在,您應該必須使用 TwiML Redirect 節點調用第一個函數。
在第二個函數中,你應該必須添加一個重定向到流添加的 webhook? FlowEvent=return&foo=bar
(其中foo=bar
應該根據您真正想要返回的信息進行更改)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.