Javascript 如何使用新令牌设置Twilio.Device?

Javascript 如何使用新令牌设置Twilio.Device?,javascript,token,twilio,destroy,Javascript,Token,Twilio,Destroy,默认情况下,Twilio助手库生成的所有令牌在一小时后过期。但是您应该为您的应用程序配置尽可能短的过期时间 每次用户尝试新连接并尝试设置Twilio设备时,我都会尝试生成一个新令牌。但它每次都会创建新设备。所以所有的Twilio设备都会收到来电,我可以看到多个通知。多个连接创建了一个发送了多个dtmf的数据。我只想要一台带有新令牌的twilio设备 Twilio.Device.destroy方法存在,但不起作用。我还有什么选择? 如何释放/销毁/停止/删除Twilio.设备 保存凭据后,调用Gl

默认情况下,Twilio助手库生成的所有令牌在一小时后过期。但是您应该为您的应用程序配置尽可能短的过期时间

每次用户尝试新连接并尝试设置Twilio设备时,我都会尝试生成一个新令牌。但它每次都会创建新设备。所以所有的Twilio设备都会收到来电,我可以看到多个通知。多个连接创建了一个发送了多个dtmf的数据。我只想要一台带有新令牌的twilio设备

Twilio.Device.destroy方法存在,但不起作用。我还有什么选择? 如何释放/销毁/停止/删除Twilio.设备

保存凭据后,调用GlobalTwilosAgasetup,并在58分钟后再次生成令牌,并完成Twilio.设备安装

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并非我使用的所有方法都有记录,尤其是销毁方法