3 votes

Obtention du profil de l'utilisateur de Google à partir de l'ID utilisateur et du jeton d'accès.

J'ai donc réussi à lier le compte utilisateur google à mon agent sur API.AI comme ceci guía et j'ai trouvé similaire réponse à ça.

"Profil" et "Email" ont été ajoutés comme champ d'application du client.

Maintenant, l'assistant a envoyé un userId et un AccessToken à mon webhook d'exécution, sous originalRequest-> data-> inputs->user.

Quelque chose comme ça :

"user":{
    "accessToken":"TWWM**********************bgf",
    "locale":"en-US",
    "userId":"AKL*********************exlT"
 }

Jusqu'à présent, mon accesToken est toujours rendu invalide par Google.

Si je vérifie mon jeton :

https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=TWWM**********************bgf

Il rend invalide

{
    "error_description": "Invalid Value"
}

Comment puis-je obtenir les informations de base du profil de l'utilisateur, telles que le prénom, le nom de famille et l'adresse électronique, avec les paramètres AccessToken et UserId ci-dessus ?

Quel point de terminaison GoogleApi dois-je invoquer ?

2voto

Prisoner Points 7770

Pour commencer, le userId Le champ fourni ici n'est pas un identifiant Google. Il s'agit d'un identifiant anonyme, spécifique à l'assistant, destiné à être utilisé pour suivre une personne de manière anonyme entre les sessions, mais que l'utilisateur peut révoquer s'il le souhaite. Il n'est pas utile d'obtenir des informations supplémentaires via OAuth.

Ensuite, gardez à l'esprit, lors de vos tests, que l'option accessToken a une durée de vie limitée - généralement environ une heure. Si vous effectuez un test après cette heure, le point d'accès auprès duquel vous essayez d'obtenir des informations renverra une erreur. (Et OAuth aime rester vague sur la nature réelle de l'erreur).

Je ne suis pas sûr que le https://www.googleapis.com/oauth2/v3/tokeninfo en fait, le point de terminaison accepte un jeton d'accès. En tout cas, je n'ai pas trouvé de documentation qui l'indique. Il est surtout utilisé pour échanger d'autres jetons. pour un jeton d'accès.

Vous avez plusieurs options pour obtenir les informations que vous souhaitez avec les champs d'application que vous avez demandés. (Et probablement plus que les deux mentionnées ici.) Dans ces deux cas, vous passeriez la balise accessToken dans un HTTP Authorization en-tête :

Authorization: Bearer TWWM**********************bgf

Utilisation de la API Google People vous utiliseriez le personnes.obtenir méthode. Pour obtenir uniquement les champs nom et adresse électronique, vous pouvez utiliser une URL telle que

https://people.googleapi.com/v1/people/me?personFields=names,emailAddresses

El plus.les.gens.obtiennent est similaire, mais renvoie les informations dans un format différent. Dans ce cas, vous utiliserez une URL telle que

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X