Javascript 如何使用新令牌设置Twilio.Device?
默认情况下,Twilio助手库生成的所有令牌在一小时后过期。但是您应该为您的应用程序配置尽可能短的过期时间 每次用户尝试新连接并尝试设置Twilio设备时,我都会尝试生成一个新令牌。但它每次都会创建新设备。所以所有的Twilio设备都会收到来电,我可以看到多个通知。多个连接创建了一个发送了多个dtmf的数据。我只想要一台带有新令牌的twilio设备 Twilio.Device.destroy方法存在,但不起作用。我还有什么选择? 如何释放/销毁/停止/删除Twilio.设备 保存凭据后,调用GlobalTwilosAgasetup,并在58分钟后再次生成令牌,并完成Twilio.设备安装Javascript 如何使用新令牌设置Twilio.Device?,javascript,token,twilio,destroy,Javascript,Token,Twilio,Destroy,默认情况下,Twilio助手库生成的所有令牌在一小时后过期。但是您应该为您的应用程序配置尽可能短的过期时间 每次用户尝试新连接并尝试设置Twilio设备时,我都会尝试生成一个新令牌。但它每次都会创建新设备。所以所有的Twilio设备都会收到来电,我可以看到多个通知。多个连接创建了一个发送了多个dtmf的数据。我只想要一台带有新令牌的twilio设备 Twilio.Device.destroy方法存在,但不起作用。我还有什么选择? 如何释放/销毁/停止/删除Twilio.设备 保存凭据后,调用Gl
function globalTwilioSagaSetup()
{
// Get Twilio credentials
// Get Twilio Token
// Setup Twilio Device
// For token re-generation before expire. 58min
setInterval(function(){globalTwilioSagaSetup();},3480000);
}
我也遇到过类似的问题,尽管在当前版本的twilio lib中,即1.2。问题是,一旦调用了安装程序,就会触发就绪事件,但仅在第一次调用安装程序方法之后。这意味着,即使使用新令牌初始化设备,也会出现建立新连接的问题。因此,调用Twilio.Device.destroy,然后调用setup,然后通过ready事件连接解决了这个问题。以下是一个例子:
srv.connectToTwilio = () => $q((resolve, reject) => {
var connection;
try {
connection = Twilio.Device.connect();
} catch (err) {
$log.debug('Device.connect(): throw', err);
}
if (connection) {
try {
connection.accept(() => {
$log.debug(`Twilio connection.accept.`);
resolve();
});
} catch (err) {
$log.debug('connection.accept(): throw', err);
}
} else {
reject(`Device.connect() did not return connection`);
}
});
srv.connect = (token) => {
return srv.setToken(token).then(() => srv.connectToTwilio());
};
srv.disconnect = () => {
shouldBeConnected = false;
try {
Twilio.Device.activeConnection().disconnect();
} catch (error) {
$log.debug(error);
} finally {
Twilio.Device.destroy();
}
$log.debug(`Twilio disconnect.`);
};
@Gino我已经用代码更新了我的答案,这应该会给你一个想法。AFAIR并非我使用的所有方法都有记录,尤其是销毁方法