2016-09-06 9 views
1

TwilioのJava helper libraryを使用して、Angularアプリケーションがブラウザから電話をかけるための機能トークンを生成しています。ここでは、コードです:角側でTwilio機能トークンが長く長くなります

public class CapabilityToken { 
    private TwilioCapability capability; 

    public String get(String applicationSid) { 
    capability.allowClientOutgoing(applicationSid); 
    try { 
     String token = capability.generateToken(); 
     // logging happens here 
     return token; 
    } catch (DomainException e) { 
     e.printStackTrace(); 
    } 
    } 
} 

、我々は新しいトークンを取得し、デバイスを初期化するためにそれを使用するために私たちのAPIへの呼び出しを行います。

Twilio.Device.setup(token, {debug: true}); 

私は繰り返し呼び出しは、このトークンを生成するために行われるとトークンが長く、長くなることthe logsに気づきました。

documentationは、新しい電話が呼び出されるたびにトークンを生成することを推奨しますが、試してみると、トークンが長すぎたためすぐに使用できなくなりました。だから、私はページの読み込み時にトークンをフェッチしていますが、トークンはまだ非常に速くなりすぎます。

なぜこれが起こっていますか、どこで間違っていますか?

答えて

1

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

CapabilityTokenクラスを設定した方法がここで問題になります。あなたはクラスレベルの変数として能力トークンを格納しているように見え、クラス上でgetを呼び出すたびに、別の発信クライアント権限をクラスに追加します。そのため、毎回サイズが増えています。代わりに、あなたはそうのように、新しいTwilioCapabilityを毎回生成する必要があります。

public class CapabilityToken { 
    public String get(String applicationSid) { 
    TwilioCapability capability = new TwilioCapability(ACCOUNT_SID, AUTH_TOKEN); 
    capability.allowClientOutgoing(applicationSid); 
    try { 
     String token = capability.generateToken(); 
     // logging happens here 
     return token; 
    } catch (DomainException e) { 
     e.printStackTrace(); 
    } 
    } 
} 

はそれが助けなら、私に教えてください。

+0

ああ!それは多くの意味があります。ありがとうございました!質問:クライアントのアクセス許可を一度設定しても大丈夫ですか?または、毎回新しいTwilioCapabilityを作成する必要がありますか? (アカウントSIDと認証トークンを復号化する必要があるので、私はそれを一度やりたいと思うからです。) – chinaowl

+1

毎回新しい機能が必要です。しかし、アプリケーションがロードされたときにアカウントSIDと認証トークンを一度復号化してから、毎回それらを使用して機能トークンを生成するのはなぜですか? – philnash

+0

うん、それは私が今やっていることだ。再度、感謝します! – chinaowl

関連する問題