Ios 检查gdata访问令牌的有效性
我正在使用GDataSDK将视频上传到youtube。今天,我在测试如果我撤销对youtube的应用访问会发生什么。在取消了对Google Account security()的访问后,我试图将视频上传到youtube。奇怪的是,我完成的选择器没有被调用,既没有错误也没有成功。 这让我相信,如果我有权上传到youtube,我应该更彻底地检查 问题是我不知道该怎么做。 这是检查是否需要执行登录的当前代码:Ios 检查gdata访问令牌的有效性,ios,youtube-api,gdata,gdata-api,Ios,Youtube Api,Gdata,Gdata Api,我正在使用GDataSDK将视频上传到youtube。今天,我在测试如果我撤销对youtube的应用访问会发生什么。在取消了对Google Account security()的访问后,我试图将视频上传到youtube。奇怪的是,我完成的选择器没有被调用,既没有错误也没有成功。 这让我相信,如果我有权上传到youtube,我应该更彻底地检查 问题是我不知道该怎么做。 这是检查是否需要执行登录的当前代码: - (BOOL)isSignedIn { NSString
- (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返回否时登录的代码:
-(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];
}
有没有办法检查我的访问令牌是否仍然有效?通常,您可以通过调用
https://www.google.com/accounts/AuthSubTokenInfo?bearer_token=OAUTH_2_TOKEN
并查看是否返回HTTP 200或40x响应
更有意义的是执行一个“廉价”的经过身份验证的YouTube API调用,比如forhttps://gdata.youtube.com/feeds/api/users/default?v=2
,然后查看返回的是有效响应还是错误