2013-12-12 88 views
1

我正在創建一個webb應用程序,您可以點擊一個號碼並從瀏覽器撥號。JWT令牌使用Twilio JS客戶端API時出現問題

我正在使用Twilio JS Client API和Django後端生成能力令牌。我正在使用Python Helper Library

似乎一切都儘快工作得很好,但因爲我想打個電話讓我的客戶端上的錯誤:

Uncaught Twilio.Exception: 31205: [object Object] twilio.min.js:45 

WebSocket is already in CLOSING or CLOSED state. 

錯誤31205是JWT令牌過期的錯誤這是奇怪的當我點擊撥號時,令牌最多有1分鐘的使用時間。

這是我在Django視圖的方法產生一個很好的能力令牌:

def dialer(req, phone_number): 
    capability = TwilioCapability(settings.TWILIO_ACCOUNT_SID, 
            settings.TWILIO_AUTH_TOKEN) 
    # allow outgoing voice 
    capability.allow_client_outgoing(settings.TWILIO_APP_SID) 
    profile = user_models.UserProfile.objects.get(user=req.user) 
    v = {'capability_token': capability.generate(expires=600), 
     'phone_number': phone_number, 'user': req.user, 
     'caller_id': profile.user_phone} 
    return shortcuts.render_to_response('dialer.html', v) 

這是JavaScript在我dialer.html:

Twilio.Device.setup('{{capability_token}}'); 
Twilio.Device.ready(function(device) { 
    console.log('Device ready...'); 
}); 
Twilio.Device.connect({ 
    CallerId:'{{caller_id}}', 
    PhoneNumber: '{{phone_number}}' 
}); 
$('#hang-up').click(function() { 
    Twilio.Device.disconnectAll(); 
}); 

爲什麼我的任何想法得到這個錯誤? Twilio文檔說,capability_token的默認使用壽命爲一小時。

謝謝!

PS。我做了完全相同的應用程序,使用Node.js作爲後端,這很好:)

回答

1

解決它!

所以沒有任何代碼問題。問題是我的虛擬機有錯誤的日期/時間設置。

所以,請確保是當你試圖從Twilio :)

+0

thansks檢索能力令牌是正確的,它可以幫助我,我向西我整天爲這個,最後你的建議是幫助下,我把我的日期和時間正確,它的工作:) –

+0

很高興聽到! @chiragpatel – Ismailp

相關問題