You'll have to make an additional query to Google+ to get the user's details. This requires the GooglePlus and GoogleOpenSource frameworks to be linked in.
Here's the Objective-C code for this, translation to Swift is left as an exercice for the reader:
#import <Google/SignIn.h>
#import <GooglePlus/GooglePlus.h>
#import <GoogleOpenSource/GoogleOpenSource.h>
...
- (void)signIn:(GIDSignIn *)signIn
didSignInForUser:(GIDGoogleUser *)user
withError:(NSError *)error
{
if (error)
{
NSLog(@"Google sign-in error: %@", error);
// do any cleanup like re-enabling buttons here
return;
}
if (!user)
{
NSLog(@"Google sign-in returned nil user");
// do any cleanup like re-enabling buttons here
return;
}
NSLog(@"Google sign-in successfull: %@, userId: %@ token: %@ name: %@ email: %@",
user,
user.userID,
user.authentication.idToken,
user.profile.name,
user.profile.email);
NSString *userId = user.userID; // For client-side use only!
NSString *idToken = user.authentication.idToken; // Safe to send to the server
NSString *name = user.profile.name;
NSString *email = user.profile.email;
__block NSString *firstName = @"";
__block NSString *lastName = @"";
__block NSString *title = @"";
NSArray *nameComponents = [name componentsSeparatedByString:@" "];
if (nameComponents.count == 2)
{
firstName = nameComponents[0];
lastName = nameComponents[1];
}
GTMOAuth2Authentication *auth = [[GTMOAuth2Authentication alloc] init];
[auth setClientID:signIn.clientID];
[auth setUserEmail:user.profile.email];
[auth setUserID:user.userID];
[auth setAccessToken:user.authentication.accessToken];
[auth setRefreshToken:user.authentication.refreshToken];
[auth setExpirationDate: user.authentication.accessTokenExpirationDate];
GTLServicePlus* plusService = [[GTLServicePlus alloc] init];
plusService.retryEnabled = YES;
plusService.authorizer = auth;
GTLQueryPlus *query = [GTLQueryPlus queryForPeopleGetWithUserId:@"me"];
[plusService executeQuery:query
completionHandler:^(GTLServiceTicket *ticket,
GTLPlusPerson *person,
NSError *error)
{
if (error)
{
GTMLoggerError(@"Error: %@", error);
}
else
{
NSLog(@"me: %@, display name: %@, about me: %@, name: %@ / %@ gender: %@",
person, person.displayName, person.aboutMe, person.name.givenName, person.name.familyName, person.gender);
firstName = person.name.givenName;
lastName = person.name.familyName;
}
// do whatever you need with the data here
}];
}