到目前为止,我在这个主题上找到的一切都是NO。
当用户登录和分享时,我的应用程序工作得很好,但这两个动作都需要移动safari,这对用户来说是一个不太理想的体验,有没有人找到一种方法来共享帖子或使用UIWebView或GET/post登录到Google + ?
任何帮助都将非常感激。
谢谢。
最简单的回答是不,正如你所说的。SDK实际上会尝试通过以下方式返回:
- 通过Google+应用程序登录(这是很好的结果,但需要安装Google+应用程序)
- Chrome登录
- 通过Mobile Safari登录
你可以用GPPSignIn对象上的attemptSSO标志来控制第一部分-如果你将其设置为NO,它将不会尝试使用Google+应用程序。你通常希望它首先尝试Google+应用程序。共享总是通过当前API版本(1.2.1)的web (chrome/safari)进行。
您可以通过Google+登录到UIWebView。
GTMOAuth2ViewControllerTouch *_googlePlusCtrl = [[GTMOAuth2ViewControllerTouch alloc]
initWithScope:@"https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/plus.me"
clientID:GOOGLE_PLUS_CLIENT_ID
clientSecret:GOOGLE_PLUS_CLIENT_SECRET
keychainItemName:@"GooglePlus_Sample_App"
delegate:self
finishedSelector:@selector(viewController:finishedWithAuth:error:)];
事情就是这样。这是有可能的。第一步-从这里下载样例项目- https://github.com/emysa341/Login-with-gmail-google-g--using-oath-2.0-protocol。第二步,在响应连接完成加载后,发出另一个请求- https://www.googleapis.com/oauth2/v1/userinfo?access_token=%@。使用从第一个请求获得的访问令牌。现在在响应中,您将获得用户数据。此外,如果您需要用户的电子邮件,将范围更改为"https://www.googleapis.com/auth/userinfo.email"。