2013-03-15 49 views
4

迄今为止,我在这个主题上找到的所有东西都是NO。iOS谷歌加API - 共享或登录而不去Safari

当用户登录并共享时,我的应用工作正常,但两种操作都需要移动Safari,这对用户来说不够理想,任何人都可以找到共享帖子或登录Google +使用UIWebView或GET/POST ?.

任何帮助将不胜感激。

谢谢。

+0

您是否找到了答案? – 2013-05-23 13:45:46

+0

不,我认为这是可能的,但我停止了尝试,因为它看起来像谷歌不希望你做任何事情,所以它可能会在未来停止工作。 – 2013-05-23 15:00:29

+0

@Oscar Gomez:你的问题解决了吗?如果是,那么你可以描述。我也遇到了这个问题。 – Ponting 2013-06-07 02:45:59

回答

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:)]; 

希望这会帮助你。

+0

感谢这让我走上了正轨 – 2013-04-15 14:40:32

+0

@Jack_iPhone:上述提示在UIWebView中并不适合我。你可以详细描述。 – Ponting 2013-06-07 02:47:44

+0

这种方法对于在UIWebVIew上打开Goog​​le+ SignIn页面就足够了。如果您使用此方法并将代理人身份通过,那么在该控制器的视图中,Google+ SignIn页面将打开并且它会创建自己的Web视图。我们不需要提供一个。希望这会解决你的问题。 – 2013-06-24 08:06:11

6

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

  1. 登录通过Google+应用(这是很好的结果,但需要有安装了Google+应用)中透过Chrome
  2. 登录
  3. 登录通过移动Safari

您可以使用GPPSignIn对象上的attemptSSO标志控制第一部分 - 如果将其设置为NO,则不会尝试使用Google+应用。您通常会首先尝试使用Google+应用。尽管通过网络(chrome/safari)与当前API版本(1.2.1)共享总是会发生的。

+0

查看下面的答案。有可能 – 2014-04-02 14:27:39

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”。

+0

那么,您如何将accessToken传回Google Plus SDK?我这样问,因为虽然你的文章很棒,但Google Plus SDK实际上只能发布到Google Plus。那么有没有办法让accessToken一旦传回Google Plus SDK就可以了? – Supertecnoboff 2014-06-22 16:29:50