1

我正在使用适用于 iOS 的 Twilio Voice Objective-C 快速入门。我可以在创建访问令牌后注册 TwilioVoice,如下所述:-

#pragma mark - PKPushRegistryDelegate
- (void)pushRegistry:(PKPushRegistry *)registry didUpdatePushCredentials:(PKPushCredentials *)credentials forType:(NSString *)type {
    NSLog(@"pushRegistry:didUpdatePushCredentials:forType:");

    if ([type isEqualToString:PKPushTypeVoIP]) {
        self.deviceTokenString = [credentials.token description];

        [[PhoneCallModel sharedInstanse] getAccessTokenResponse:^(NSString *accessToken) {

            [[TwilioVoice sharedInstance] registerWithAccessToken:accessToken
                                                      deviceToken:self.deviceTokenString
                                                       completion:^(NSError *error) {
                                                           if (error) {
                                                               NSLog(@"An error occurred while registering: %@", [error localizedDescription]);
                                                           }
                                                           else {
                                                               NSLog(@"Successfully registered for VoIP push notifications.");
                                                           }
                                                       }];
        }];
    }
}

根据 Pushkit ( PKPushRegistry ) 方法,我已经创建了 5 分钟的令牌

- (void)pushRegistry:(PKPushRegistry *)registry didInvalidatePushTokenForType:(PKPushType)type

应该在令牌过期后调用。但是didInvalidatePushTokenForType没有调用,试了很多次。

如何检查当前访问令牌是否过期,传入' registerWithAccessToken ”传递?
当前访问令牌过期后,我想使用 AccessToken 重新注册 TwilioVoice。

请帮助,提前谢谢。

4

1 回答 1

4

Twilio 开发人员布道者在这里。

想在这里完成这个圈子,因为这个问题也被问到了,并且可能已经跟进了快速启动应用程序的 GitHub 项目。以下是在可编程语音 SDK 团队工作的 Bobie 的回答:

- (void)pushRegistry:(PKPushRegistry *)registry didInvalidatePushTokenForType:(PKPushType)type 委托方法在 Apple VoIP 服务之前发布的设备令牌已过期或不再有效使用时调用。Apple 的此文档中的更多详细信息。

使用 Access Token 的主要思想是为注册请求或拨出呼叫时的信令握手提供“一次性”操作认证。话虽如此,我们仍然建议您在拨打电话时生成有效期等于或超过 1 小时的访问令牌。

至于刷新注册表,除非您明确取消注册(或 PushKit 令牌已过期),否则您实际上不必重新注册。该应用程序仍将能够接收来自 Twilio 的推送通知。

除此之外,如果您想在应用程序中获得自动访问令牌管理,那么您可以使用 Twilio AccessManagerSDK。这是可编程语音、聊天、视频和同步之间共享的通用 SDK。Chat 文档中有安装说明

然后,此页面显示如何使用AccessManagerChat SDK。您可以替换可编程语音 SDK,但它应该可以正常工作。

让我知道这是否有帮助。

于 2017-07-26T23:12:38.977 回答