2017-04-10 62 views
1

我正嘗試使用谷歌登錄創建Ionic 2應用程序,並且我需要檢索人員性別和生日。Ionic 2 Google登錄 - 檢索性別和生日

這是我到目前爲止的代碼:

doGoogleLogin() { 
    GooglePlus.login(
     { 
     'scopes': 'profile', 
     'webClientId': 'myClientId' 
     } 
    ) 
    .then(userData => { 
     let token = userData.idToken; 
     console.log(JSON.stringify(userData); 
    }) 
    .catch(err => console.error(err)); 
} 

的用戶數據只包含用戶的idToken,電子郵件,姓名等。
Ionics Google Plus Plugin不提供調用任何其他API端點的功能。我已經嘗試從https://accounts.google.com/o/oauth2/v2/auth獲得oauth訪問令牌,並通過https調用使用Google People API,但無法使其工作。

任何幫助將不勝感激!

這些源也可能會有所幫助:Google People APIOAuth 2.0 for Mobile Apps

回答

0

工作API路徑...

您可以得到使用以下API路徑API調用,這將返回唯一的公共性和公共生日..

要求: 1.確保您有登錄用戶的userId。您將從登錄響應中獲取userId。 2.你需要api密鑰,你將從谷歌開發者控制檯在憑證部分獲得...只需按照以下鏈接和憑證部分,您將獲得api密鑰。

Google Developer console

,最終使使用下面阿比路徑GET API調用....

https://www.googleapis.com/plus/v1/people/」 + 用戶id + 「?關鍵=」 + apiKey

注:確保使用要求步驟1和2來替換userId和apiKey。

0

@Shabeer提供的答案是o只有部分真實。對於公共配置文件屬性(如性別),您可以使用您的應用程序密鑰來檢索信息。對於私人配置文件數據屬性(如生日),必須使用OAuth 2.0令牌,也就是說,用戶必須使用某些特定的作用域進行登錄,這些作用域會生成一個OAuth接受令牌,以允許您檢索私有屬性。請致電Google People Authorise Request頁面。一旦獲得訪問令牌,就可以使用兩個API獲取信息。第一個是Google+中,使用URL:

https://www.googleapis.com/plus/v1/people/me

添加報頭Authorization: Bearer <access_token>到請求中。

要測試此方法,請使用Google+ people get。請注意,此API中使用的權限(點擊show scopes)與Google People API(第二個選項)略有不同。權限是:

https://www.googleapis.com/auth/plus.login 
https://www.googleapis.com/auth/plus.me 
https://www.googleapis.com/auth/userinfo.email 
https://www.googleapis.com/auth/userinfo.profile 

在寫這篇文章的時間和暫時,我還沒有直接使用第二個選項,Google People API,讓年齡範圍取得了成功,但生日是可用的。使用以前的網址來測試查詢,並注意權限與Google+ API不同(點擊show scopes)。

使用Chrome Developer Tools或任何其他瀏覽器控制檯查看測試頁使用的網絡請求和OAuth令牌。您可以使用Postman來測試您的查詢。

希望這可以幫到你, Xavi