81167

iOS Google+ SignIn finishedWithAuth not called after application openURL delegate

Question:

iOS Google+ SignIn finishedWithAuth never triggered after the application:openURL:sourceApplication:annotation: app delegate method. This was working, but now it does not.

The response is:

url:com.**************:/oauth2callback?state=19139956&code=4/<some token string>&authuser=0&num_sessions=1&prompt=consent&session_state=9efdca9285835ed58ace73b284e4f7521076fc97..4291*

The signIn instance is a class member, so I don't know what happens for the finishedWithAuth triggering.

Thanks!

Answer1:

-(void)googlePluseLogin { GPPSignIn *signIn = [GPPSignIn sharedInstance]; signIn.delegate = self; signIn.shouldFetchGooglePlusUser = YES; signIn.shouldFetchGoogleUserEmail = YES; signIn.clientID = kClientID; signIn.scopes = @[@"profile"]; if (![signIn trySilentAuthentication]) [signIn authenticate]; } -(void)finishedWithAuth:(GTMOAuth2Authentication *)auth error:(NSError *)error { NSLog(@"%@",auth); if (error) { } else { } }

Answer2:

You need to call GPPURLHandler handleURL in your application:openURL:sourceApplication:annotation: method, and you need to have setup the delegate on [GPPSignIn sharedInstance] before. I am guessing that you don't set the delegate until after the GPPURLHandler has been processed.

Answer3:

I forgot to setup a URL Type as shown in <a href="https://developers.google.com/+/mobile/ios/getting-started" rel="nofollow">Step 3</a>

Recommend

  • d3.json works but $.getJson fails
  • Play 2 Java authenticate plugin - HTTP status code response instead of redirect
  • How to set a specified engine ID for SNMP4J to send V3 trap
  • HTTP Authentication with Web References
  • Set cache time AFNetworking swift 2
  • Migration tool for ANTLR grammar
  • IDX10503: Signature validation failed
  • oauth2client.client.HttpAccessTokenRefreshError: invalid_grant: Invalid JWT
  • Syntax error near unexpected token 'elif'
  • read values from form post in jquery or javascript
  • Responsive left sidebar open close
  • How Get arguments value using inline assembly in C without Glibc?
  • How to make R's read_csv2() recognise the text characters properly
  • Implementation of State Monad
  • How do I pass the string value parameter of the selected list item from an auto-populated dropdown l
  • How to set my toolbar fixed while scrolling android
  • Can I have the cursor start on a particular column by default in jqgrid's edit mode?
  • Rearranging Cells in UITableView Bug & Saving Changes
  • AT Commands to Send SMS not working in Windows 8.1
  • Circular dependency while pushing http interceptor
  • Linker errors when using intrinsic function via function pointer
  • Windows forms listbox.selecteditem displaying “System.Data.DataRowView” instead of actual value
  • log4net write single file for each call to log.info
  • Benchmarking RAM performance - UWP and C#
  • Acquiring multiple attributes from .xml file in c#
  • Trying to get generic when generic is not available
  • FormattedException instead of throw new Exception(string.Format(…)) in .NET
  • How to CLICK on IE download dialog box i.e.(Open, Save, Save As…)
  • embed rChart in Markdown
  • How to get Windows thread pool to call class member function?
  • IndexOutOfRangeException on multidimensional array despite using GetLength check
  • apache spark aggregate function using min value
  • How can I remove ASP.NET Designer.cs files?
  • Sorting a 2D array using the second column C++
  • costura.fody for a dll that references another dll
  • Observable and ngFor in Angular 2
  • How to Embed XSL into XML
  • UserPrincipal.Current returns apppool on IIS
  • Conditional In-Line CSS for IE and Others?
  • java string with new operator and a literal