Как получить информацию о профиле пользователя Google, используя токен доступа из OAuth?
Я использую ReactJS на фронтенде: Я успешно получил токен доступа из Oauth-сервиса Google, но он не дает мне никакой информации о профиле для "текущего пользователя".
Я пробовал использовать конечную точку /userInfo, ?access_token={my_access_token} query str, и некоторые другие решения, но я продолжаю получать странные ошибки.
В настоящее время у меня есть:
const { access_token, refresh_token } = res.data; // now I have valid access_token
let userInfo = await axios.get("https://www.googleapis.com/oauth2/v3/userinfo",
{
headers: {
Authorization: `Bearer ${access_token}`
}
}); // ERROR WHEN MAKING THIS CALL.
Моя конкретная 401 ошибка выглядит следующим образом: сообщение об ошибке
Вы не должны полагаться на конечную точку user info для получения информации о профиле пользователя. До тех пор, пока вы запрашиваете область профиля пользователя или даже электронную почту, вы должны использовать People api. Это даст вам доступ ко всем данным профиля пользователя.
GET https://people.googleapis.com/v1/people/me?personFields=names HTTP/1.1
Authorization: Bearer [YOUR_ACCESS_TOKEN]
Accept: application/json
ответ
{
"resourceName": "people/117dd2004755326722775346",
"etag": "%EgUBAi43PRoEAQIFBddyIMR3BzQkR2cnI1ZGc9",
"names": [
{
"metadata": {
"primary": true,
"source": {
"type": "PROFILE",
"id": "117200155326727753146"
}
},
"displayName": "Linda Lawton",
"familyName": "Lawton",
"givenName": "Linda",
"displayNameLastFirst": "Lawton, Linda",
"unstructuredName": "Linda Lawton"
},
{
"metadata": {
"source": {
"type": "CONTACT",
"id": "3faa96eb0118baa4be"
}
},
"displayName": "Linda Lawton",
"familyName": "Lawton",
"givenName": "Linda",
"displayNameLastFirst": "Lawton, Linda",
"unstructuredName": "Linda Lawton"
}
]
}