我正在使用Twilio的Java helper library为我的Angular应用生成一个功能令牌,用于从浏览器拨打电话。这是代码:
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();
}
}
}
在Angular方面,我们调用我们的API来获取新令牌,然后使用它来初始化设备。
Twilio.Device.setup(token, {debug: true});
我在the logs注意到,当重复调用生成此令牌时,令牌会越来越长。
documentation建议每次拨打新电话时生成一个令牌,但是当我尝试这样做时,令牌很快变得无法使用,因为它太长了。所以现在我只是在页面加载时获取令牌,但令牌仍然太快了。
为什么会发生这种情况?我可能在哪里出错?
答案 0 :(得分: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();
}
}
}
如果有帮助,请告诉我。