2013-04-13 75 views
1

我正在使用gdata sdk將視頻上傳到YouTube。今天我正在測試如果我撤銷我的應用訪問YouTube的情況會發生什麼。撤銷Google帳戶安全訪問權後(https://accounts.google.com/b/0/IssuedAuthSubTokens),我試圖將視頻上傳到YouTube。奇怪的是,我的成品選擇器沒有被錯誤或成功調用。 這讓我相信,如果我有權上傳到YouTube,我應該以某種方式檢查更徹底。檢查gdata訪問令牌的有效性

問題是我不知道這應該怎麼做。 這是我當前的代碼檢查,如果我需要在執行的標誌:

- (BOOL)isSignedIn 
    { 
     NSString *clientID = @"CLIENT_ID"; 
     NSString *clientSecret = @"CLIENT_SECRET"; 
     NSString *keychainName= @"KEYCHAIN_NAME"; 

     GTMOAuth2Authentication *auth = [GTMOAuth2ViewControllerTouch authForGoogleFromKeychainForName:keychainName 
                    clientID:clientID 
clientSecret:clientSecret]; 

     [[self youTubeService] setAuthorizer:auth]; 
     return auth.canAuthorize; 

    } 

這是代碼,在如果isSignedIn返回NO跡象:

-(void)performSignIn:(id)arg 
{  
    NSString *scope = [GDataServiceGoogleYouTube authorizationScope]; 

    NSString *clientID = @"CLIENT_ID"; 
    NSString *clientSecret = @"CLIENT_SECRET"; 
    NSString *keychainName= @"KEYCHAIN_NAME"; 

    SEL finishedSel = @selector(viewController:finishedWithAuth:error:); 




    GTMOAuth2ViewControllerTouch *viewController; 
    viewController = [GTMOAuth2ViewControllerTouch controllerWithScope:scope 
                   clientID:clientID 
                  clientSecret:clientSecret 
                 keychainItemName:keychainName 
                   delegate:self 
                 finishedSelector:finishedSel]; 

    UINavigationController *aNavController = [[UINavigationController alloc] initWithRootViewController:viewController]; 
    [self presentModalViewController:aNavController animated:YES]; 
    [aNavController release]; 

} 

有沒有一種方法來檢查,如果我的訪問令牌仍然有效?

回答

1

通常,您可以通過調用https://www.google.com/accounts/AuthSubTokenInfo?bearer_token=OAUTH_2_TOKEN來檢查Google發佈的OAuth 2訪問令牌是否有效,並查看您是否收到HTTP 200或40x響應。

更合理的做法是進行「廉價」認證的YouTube API調用,例如https://gdata.youtube.com/feeds/api/users/default?v=2,並查看您是否收回有效的回覆或錯誤。

相關問題