4

到目前为止,我在这个主题上发现的一切都是否定的。

当用户登录和分享时,我的应用程序运行良好,但是这两个操作都需要移动 safari,这对用户来说不是理想的体验,有没有人找到一种方法来分享帖子或使用 UIWebView 登录到 Google+ 或获取/发布?

任何帮助将不胜感激。

谢谢。

4

3 回答 3

6

正如你所说,最简单的答案是否定的。SDK 实际上会尝试通过以下方式回退:

  1. 通过 Google+ 应用登录(这是不错的结果,但需要安装 Google+ 应用)
  2. 通过 Chrome 登录
  3. 通过移动 Safari 登录

您可以使用 GPPSignIn 对象上的 attemptSSO 标志来控制第一部分 - 如果您将其设置为 NO,它将不会尝试使用 Google+ 应用程序。您通常希望它先试用 Google+ 应用程序。不过,共享总是通过网络(chrome/safari)和当前的 API 版本(1.2.1)进行。

于 2013-03-18T16:30:58.247 回答
5

您可以通过 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:)];

希望这会帮助你。

于 2013-03-28T03:38:47.960 回答
2

事情就是这样。这是可能的。第一步 - 从这里下载示例项目 - 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 ”。

于 2014-02-17T11:18:36.667 回答