2
0

Dumped Google+ SDK.

[UPDATED]   Google+ SDK.
This commit is contained in:
Maarten Billemont
2013-04-27 17:14:05 -04:00
parent dc3c30a2f7
commit a6e3b83ebb
206 changed files with 8949 additions and 1417 deletions

View File

@@ -31,9 +31,11 @@ static NSString *const kOAuth2TokenTypeKey = @"token_type";
static NSString *const kOAuth2ExpiresInKey = @"expires_in";
static NSString *const kOAuth2CodeKey = @"code";
static NSString *const kOAuth2AssertionKey = @"assertion";
static NSString *const kOAuth2RefreshScopeKey = @"refreshScope";
// additional persistent keys
static NSString *const kServiceProviderKey = @"serviceProvider";
static NSString *const kUserIDKey = @"userID";
static NSString *const kUserEmailKey = @"email";
static NSString *const kUserEmailIsVerifiedKey = @"isVerified";
@@ -178,6 +180,7 @@ finishedRefreshWithFetcher:(GTMHTTPFetcher *)fetcher
refreshToken,
code,
assertion,
refreshScope,
errorString,
tokenType,
scope,
@@ -478,6 +481,29 @@ finishedRefreshWithFetcher:(GTMHTTPFetcher *)fetcher
}
}
- (void)stopAuthorizationForRequest:(NSURLRequest *)request {
@synchronized(authorizationQueue_) {
NSUInteger argIndex = 0;
BOOL found = NO;
for (GTMOAuth2AuthorizationArgs *args in authorizationQueue_) {
if ([args request] == request) {
found = YES;
break;
}
argIndex++;
}
if (found) {
[authorizationQueue_ removeObjectAtIndex:argIndex];
// If the queue is now empty, go ahead and stop the fetcher.
if ([authorizationQueue_ count] == 0) {
[self stopAuthorization];
}
}
}
}
- (BOOL)authorizeRequestImmediateArgs:(GTMOAuth2AuthorizationArgs *)args {
// This authorization entry point never attempts to refresh the access token,
// but does call the completion routine
@@ -608,13 +634,15 @@ finishedRefreshWithFetcher:(GTMHTTPFetcher *)fetcher
NSString *accessToken = self.accessToken;
NSString *refreshToken = self.refreshToken;
NSString *assertion = self.assertion;
NSString *code = self.code;
BOOL hasRefreshToken = ([refreshToken length] > 0);
BOOL hasAccessToken = ([accessToken length] > 0);
BOOL hasAssertion = ([assertion length] > 0);
BOOL hasCode = ([code length] > 0);
// Determine if we need to refresh the access token
if (hasRefreshToken || hasAssertion) {
if (hasRefreshToken || hasAssertion || hasCode) {
if (!hasAccessToken) {
shouldRefresh = YES;
} else {
@@ -666,7 +694,6 @@ finishedRefreshWithFetcher:(GTMHTTPFetcher *)fetcher
NSMutableDictionary *paramsDict = [NSMutableDictionary dictionary];
NSString *commentTemplate;
NSString *fetchType;
NSString *refreshToken = self.refreshToken;
@@ -677,14 +704,18 @@ finishedRefreshWithFetcher:(GTMHTTPFetcher *)fetcher
// We have a refresh token
[paramsDict setObject:@"refresh_token" forKey:@"grant_type"];
[paramsDict setObject:refreshToken forKey:@"refresh_token"];
NSString *refreshScope = self.refreshScope;
if ([refreshScope length] > 0) {
[paramsDict setObject:refreshScope forKey:@"scope"];
}
fetchType = kGTMOAuth2FetchTypeRefresh;
commentTemplate = @"refresh token for %@";
} else if (code) {
// We have a code string
[paramsDict setObject:@"authorization_code" forKey:@"grant_type"];
[paramsDict setObject:code forKey:@"code"];
NSString *redirectURI = self.redirectURI;
if ([redirectURI length] > 0) {
[paramsDict setObject:redirectURI forKey:@"redirect_uri"];
@@ -696,13 +727,11 @@ finishedRefreshWithFetcher:(GTMHTTPFetcher *)fetcher
}
fetchType = kGTMOAuth2FetchTypeToken;
commentTemplate = @"fetch tokens for %@";
} else if (assertion) {
// We have an assertion string
[paramsDict setObject:assertion forKey:@"assertion"];
[paramsDict setObject:@"http://oauth.net/grant_type/jwt/1.0/bearer"
forKey:@"grant_type"];
commentTemplate = @"fetch tokens for %@";
fetchType = kGTMOAuth2FetchTypeAssertion;
} else {
#if DEBUG
@@ -749,7 +778,8 @@ finishedRefreshWithFetcher:(GTMHTTPFetcher *)fetcher
fetcher = [GTMHTTPFetcher fetcherWithRequest:request];
}
[fetcher setCommentWithFormat:commentTemplate, [tokenURL host]];
NSString *const template = (refreshToken ? @"refresh token for %@" : @"fetch tokens for %@");
[fetcher setCommentWithFormat:template, [tokenURL host]];
fetcher.postData = paramData;
fetcher.retryEnabled = YES;
fetcher.maxRetryInterval = 15.0;
@@ -898,6 +928,7 @@ finishedRefreshWithFetcher:(GTMHTTPFetcher *)fetcher
[dict setValue:refreshToken forKey:kOAuth2RefreshTokenKey];
[dict setValue:accessToken forKey:kOAuth2AccessTokenKey];
[dict setValue:self.serviceProvider forKey:kServiceProviderKey];
[dict setValue:self.userID forKey:kUserIDKey];
[dict setValue:self.userEmail forKey:kUserEmailKey];
[dict setValue:self.userEmailIsVerified forKey:kUserEmailIsVerifiedKey];
[dict setValue:self.scope forKey:kOAuth2ScopeKey];
@@ -965,6 +996,14 @@ finishedRefreshWithFetcher:(GTMHTTPFetcher *)fetcher
[self.parameters setValue:str forKey:kOAuth2AssertionKey];
}
- (NSString *)refreshScope {
return [self.parameters objectForKey:kOAuth2RefreshScopeKey];
}
- (void)setRefreshScope:(NSString *)str {
[self.parameters setValue:str forKey:kOAuth2RefreshScopeKey];
}
- (NSString *)errorString {
return [self.parameters objectForKey:kOAuth2ErrorKey];
}
@@ -1024,6 +1063,14 @@ finishedRefreshWithFetcher:(GTMHTTPFetcher *)fetcher
[self.parameters setValue:str forKey:kServiceProviderKey];
}
- (NSString *)userID {
return [self.parameters objectForKey:kUserIDKey];
}
- (void)setUserID:(NSString *)str {
[self.parameters setValue:str forKey:kUserIDKey];
}
- (NSString *)userEmail {
return [self.parameters objectForKey:kUserEmailKey];
}