在我的网站登录后使用谷歌登录获取谷歌帐户信息(使用的satellizer lib登录)

时间:2016-08-14 05:44:37

标签: angularjs node.js mongodb google-api satellizer

我已经使用satellizer节点服务器在我的网站上登录,并且谷歌唱歌。

我已成功登录并在mongodb数据库中添加了以下数据。

{
    "_id" : ObjectId("57adec45a8fb51401c1ba843"),
    "displayName" : "xyz user",
    "picture" : "https://lh3.googleusercontent.com/-xxxxxxx_xx/xxxxxx/xxxxxxx/xxxxxxx/photo.jpg?sz=200",
    "google" : "100379763204xxxxxxxxx", //user id
    "__v" : 0
} 

现在,我想从Google帐户中获取其他信息,如性别,电话号码,位置等......

那么,如何从谷歌帐户获取登录用户的所有信息?

2 个答案:

答案 0 :(得分:1)

并非所有这些信息都可用。它还取决于用户是否将信息设置为公开。

如果您使用People: get方法,则会返回人员资源Resource。假设用户公开此信息,您应该看到您所追踪的信息。此方法是Google+ API的一部分,因此仅当用户拥有Google+帐户时才有效。

还有People API倾向于返回类似信息people.get。我不确定这些信息是来自哪里。它似乎与用户Google帐户相关,而不是与Google+帐户相关。

答案 1 :(得分:1)

我终于成功了,有我的解决方案:

getGoogleDatas: function (id) {
    return $http.get("https://www.googleapis.com/oauth2/v1/userinfo", {
        params: {
            access_token: $auth.getToken(),
            alt: 'json'
        }
    });
}

然后:

getGoogleDatas().then(function (response) {
    user = response;
}).catch(function (error) {
    console.log('error:', error);
});