2017-05-24 56 views
0

Twilio is deprecating Node Helper Library 2.x on 8/31/2017並對其3.x版本進行了一些更改。我用得到一個呼叫的詳細信息:使用Twilio(Node Helper Library 3.x)獲取調用實例

client.calls(sid).get(function(err, call) { 
    if(!err) { 
     console.log(call); 
    } 
}); 

隨着2.x,該get()方法返回有效的JSON:

{"sid": "xxxx", "date_created": "xxxx", "date_updated": "xxxx",...

隨着3.x,該fetch()方法取代get()(和承諾是現在使用)。隨着fetch(),而不是得到有效的JSON響應,我現在得到一個JavaScript CallInstance對象:

CallInstance { 
    _version: 
    V2010 { 
    _domain: 
     Api { 
     twilio: [Object], 
     baseUrl: 'https://api.twilio.com', 
     _v2010: [Circular] }, 
    _version: '2010-04-01', 
    _accounts: undefined, 
    _account: 
     AccountContext { 
     _version: [Circular], 
     _solution: [Object], 
     ... 

如果我拼湊baseUrl加上uriCallInstancehttps://api.twilio.com/2010-04-01/Accounts/xxx/Calls/xxx.json),那麼我可以得到老我正在尋找JSON響應。

問題:有沒有辦法讓Twilio Node Helper Library 3.x返回舊的,有效的JSON格式而不是CallInstance對象?

回答

0

Twilio開發者佈道者在這裏。

版本3 Twilio Node library不返回一個普通的JavaScript對象,並且據我所見,looking through the code,您不能簡單地使用該庫訪問來自API的純JSON響應。

你可以自己創建的URL,使請求API返回原始響應,像這樣的東西(使用Twilio引擎蓋下使用相同的request library):

var request = require('request'); 

var accountSid = YOUR_ACCOUNT_SID; 
var authToken = YOUR_AUTH_TOKEN; 

var callSid = CALL_SID; 

var url = 'https://api.twilio.com/2010-04-01/Accounts/'+ accountSid +'/Calls/'+ callSid +'.json'; 

request.get(url, { 
    'auth': { 
    'user': accountSid, 
    'pass': authToken, 
    'sendImmediately': true 
    } 
}, function (error, response, body) { 
    console.log(body); 
}); 

順便說一句,我想了解你需要什麼原始JavaScript對象?所有相同的數據都在CallInstance對象中提供,以及用於加載更多或關於該實例的相關數據的其他方法。

+0

不知道OP,但我想要原始對象的原因是因爲該庫公開的對象不是JSON序列化的。 – djanowski

+0

這很公平,儘管編寫一個函數可以從您需要的庫對象中提取數據並自行將其序列化,這將是微不足道的。 – philnash

+0

除了我想要Twilio正在返回的對象外,不必從暴露的對象中重建它。 – djanowski