如何从Google API获取用户信息资料?

时间:2019-04-01 06:00:28

标签: node.js oauth google-api google-oauth

我必须通过Google帐户实施登录。

我想要一些建议。

我在Google控制台中创建了项目。添加了范围用户info.profile

我正在按照互联网上的课程说明进行操作,但仍然无法获取用户信息(电子邮件,姓名,年龄...)。

步骤:

{
    "azp": "155122683461-51hq2n932svo4ajbt98ic0q67m4tuj5o.apps.googleusercontent.com",
    "aud": "155122683461-51hq2n932svo4ajbt98ic0q67m4tuj5o.apps.googleusercontent.com",
    "sub": "108865940357700877124",
    "scope": "https://www.googleapis.com/auth/userinfo.profile",
    "exp": "1554094721",
    "expires_in": "3326",
    "access_type": "offline"
}

你们能给我一个例子吗?(

谢谢

1 个答案:

答案 0 :(得分:1)

people api

您要查找的信息可以在people.get

上找到
GET https://people.googleapis.com/v1/{resourceName=people/*}

提示发送无空格的字段掩码-person.emailAddresses,person.birthdays读取表格person info,因此用户将不得不填写此信息

但是,您将需要添加范围以获取所需的信息

https://www.googleapis.com/auth/profile.emails.read
https://www.googleapis.com/auth/user.birthday.read

您可以在Google Apis explorer

进行测试

可以找到here

用于Google People API的node.js快速入门

userinfo端点

也可以使用userinfo端点,但是它不返回您要查找的信息

您需要请求电子邮件范围以在以下响应中看到电子邮件,用户必须授予您查看其电子邮件的权限,以下仅是配置文件范围的标准响应。

GET /oauth2/v2/userinfo HTTP/1.1
Host: www.googleapis.com
Content-length: 0
Authorization: Bearer ya29.GlveBiwp4-NTPLU9VN3rn1enty11KOdQHGcyfZd1xJ1Ee9eGS2Pw2nJ7KDUBQPa-uT-AoKDQdoVigU6bruVIB1a3fiBu1n

响应

{
  "picture": "https://lh5.googleusercontent.com/-a1CWlFnA5xE/AAAAAAAAAAI/AAAAAAAAl1I/UcwPajZOuN4/photo.jpg", 
  "name": "Linda Lawton", 
  "family_name": "Lawton", 
  "locale": "en", 
  "gender": "female", 
  "link": "https://plus.google.com/+LindaLawton", 
  "given_name": "Linda", 
  "id": "117200475532672775346"
}

范围

您应咨询节点tutorial以了解如何使用范围。请记住,如果您更改代码范围,则需要再次请求用户访问。

const SCOPES = ['profile', 'email'];