2016-09-06 4 views
1

Я использую Twilio's Java helper library, чтобы создать токен возможностей для моего Углового приложения, используемого для совершения вызовов из браузера. Вот код:токен возможности 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

Смежные вопросы