2013-04-13 3 views
1

gdata sdk를 사용하여 YouTube에 비디오를 업로드하고 있습니다. 오늘 내가 YouTube에 내 앱에 대한 액세스 권한을 취소하면 어떻게되는지 테스트하고있었습니다. Google 계정 보안 (https://accounts.google.com/b/0/IssuedAuthSubTokens)에서 액세스 권한을 취소 한 후 YouTube에 동영상을 업로드하려고했습니다. 이상하게도 완성 된 셀렉터는 오류 또는 성공으로도 호출되지 않았습니다. 이렇게하면 YouTube에 업로드 할 수있는 권한이 있으면 어떻게 든 철저히 확인해야한다고 생각했습니다.gdata 액세스 토큰의 유효성을 확인하십시오.

문제는 어떻게해야할지 모르겠다.

-(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]; 

} 

여부를 확인하는 방법이 있나요 :이 isSignedIn는 NO를 반환하지 않는 경우의 징후가 코드입니다

- (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; 

    } 

: 이 난에 표시를 수행해야하는 경우 내 현재 코드를 확인하는 것입니다 내 액세스 토큰은 여전히 ​​유효합니까?

답변

1

일반적으로 https://www.google.com/accounts/AuthSubTokenInfo?bearer_token=OAUTH_2_TOKEN을 호출하여 Google에서 발급 한 OAuth 2 액세스 토큰이 유효한지 여부를 확인하고 HTTP 200 또는 40x 응답을 받았는지 확인할 수 있습니다.

https://gdata.youtube.com/feeds/api/users/default?v=2과 같이 "저렴한"인증 된 YouTube API 호출을 수행하고 유효한 응답이나 오류가 다시 발생하는지 확인하는 것이 더 의미가 있습니다.

관련 문제