2013-03-15 23 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