我正在尝试使用谷歌登录构建一个 Ionic 2 应用程序,我需要检索人员的性别和生日。
这是我到目前为止的代码:
doGoogleLogin() {
GooglePlus.login(
{
'scopes': 'profile',
'webClientId': 'myClientId'
}
)
.then(userData => {
let token = userData.idToken;
console.log(JSON.stringify(userData);
})
.catch(err => console.error(err));
}
用户数据仅包含用户的身份令牌、电子邮件和姓名。
Ionics Google Plus 插件不提供调用任何其他 API 端点的函数。我已经尝试从https://accounts.google.com/o/oauth2/v2/auth
获取oauth访问令牌,并将Google People API与https调用一起使用,但我无法使其工作。
任何帮助将不胜感激!
这些来源也可能有所帮助:Google People API,适用于移动应用的OAuth 2.0
@Shabeer提供的答案只是部分正确。对于公共配置文件属性(如性别),可以使用应用程序密钥检索信息。对于专用配置文件数据属性(如生日),必须使用 OAuth 2.0 令牌,即用户必须使用某些特定范围登录,这些范围生成允许您检索私有属性的 OAuth 接受令牌。
请仔细阅读谷歌人脉授权请求页面。获得访问令牌后,可以使用两个 API 获取信息。第一个是Google+,使用URL:
https://www.googleapis.com/plus/v1/people/me
将标头Authorization: Bearer <access_token>
添加到请求中。
要测试这种方法,请使用Google+人们得到。请注意,此 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 开发者工具或任何其他浏览器平台查看测试页使用的网络请求和 OAuth 令牌。您可以使用邮递员测试查询。
希望这对你有帮助, 哈维
工作 API 路径...
您可以使用下面的 api 路径进行获取 api 调用,这将仅返回公开性别和公开生日。
要求: 1. 确保您拥有登录用户的用户 ID。您将从登录响应中获取用户 ID。 2.您需要从凭据部分的谷歌开发人员控制台获得的api密钥...只需点击以下链接,在凭据部分,您将获得 api 密钥。
谷歌开发者控制台
最后使用以下 API 路径进行 GET API 调用......
"https://www.googleapis.com/plus/v1/people/" +用户 ID+ "?key=" +apiKey
注意:确保使用要求步骤 1 和 2 替换 userId 和 apiKey。