google-oauth - votre - signin action on google




Comment authentifier l'utilisateur avec seulement un compte Google sur Actions sur Google? (3)

Après avoir contacté Google, la situation actuelle semble être que vous devez configurer votre propre serveur OAuth2, puis sur l'écran de connexion de votre serveur OAuth2, vous devez démarrer le flux Google OAuth2.

vous devez avoir votre propre point de terminaison avec Google Oauth2 - il est exact que vous ne pouvez pas utiliser Google Oauth en tant que fournisseur. Pour utiliser le service Google OAuth, vous pouvez utiliser un bouton "Se connecter avec Google" sur votre propre terminal.

Source: Contacter Google Actions sur le support Google

C'est un peu sans voix en ce moment ... car cela semble être un énorme oubli de la part de Google.

Actuellement, Google Assitant comprend un moyen simple de demander des informations non identifiables sur l'utilisateur et un flux détaillé d'authentification de l'utilisateur sur un service tiers via OAuth2. Qu'en est-il si tout ce dont j'ai besoin est que l'utilisateur s'authentifie sur Google lui-même? J'ai essayé de renseigner le flux de liaison des comptes à l'aide des informations Google OAuth2, mais cela ne semble pas fonctionner. Si cette dernière chose était censée fonctionner couramment, cela suffirait.

Contexte: les utilisateurs ne s'authentifient déjà qu'avec Google sur une page Web associée. Tout ce dont j'ai besoin, c'est de lier ce compte déjà authentifié au compte moins authentifié de Google Assistant.


Je suis capable de le faire fonctionner après un long moment. Nous devons d'abord activer le Webhook et nous pouvons voir comment l'activer dans les documents d'exécution du flux de dialogue. Si nous allons utiliser Google Assistant, nous devons d'abord activer l'intégration de Google Assistant dans les intégrations. Suivez ensuite les étapes mentionnées ci-dessous pour la liaison de compte dans les actions sur Google: -

  1. Allez sur google cloud console -> APIs Services -> Informations d'identification -> ID clients OAuth 2.0 -> Client Web -> Notez l'ID client, le secret client à partir de là -> Téléchargez JSON - à partir de la note json indiquant l'ID du projet, auth_uri, token_uri - > URI de redirection autorisés -> Liste blanche l'URL de notre application -> dans cette URL, la partie fixe est https://oauth-redirect.googleusercontent.com/r/ et ajoutez l'ID du projet dans l'URL -> Enregistrez les modifications.

  2. Actions sur Google -> Configuration de la liaison au compte 1. Type d'octroi = Code d'autorisation 2. Informations client 1. Entrez l'identifiant du client, le secret du client, auth_uri, token_uri 2. Entrez l'URI de l'authentification comme https://www.googleapis.com/auth et token_uri as https://www.googleapis.com/token 3. Enregistrez et exécutez 4. Une erreur s’affiche lors de l’exécution de Google Assistant, mais ne vous inquiétez pas. 5. Retournez à la section de liaison des comptes dans les paramètres de l’assistant et entrez auth_uri en tant que https://accounts.google.com/o/oauth2/auth et token_uri en tant que https://accounts.google.com/o/oauth2/token 6. Définissez les étendues sous la forme https://www.googleapis.com/auth/userinfo.profile et https://www.googleapis.com/auth/userinfo.email et nous sommes prêts à partir. 7. Enregistrez les modifications.

  3. Dans les journaux du serveur d'hébergement, nous pouvons voir la valeur du jeton d'accès et, grâce au jeton d'accès, nous pouvons obtenir les détails concernant l'adresse de messagerie.

  4. Ajoutez le jeton d'accès à ce lien " https://www.googleapis.com/oauth2/v1/userinfo?access_token= " et nous pourrons obtenir les détails requis dans la page json résultante.
  5. accessToken = req.get("originalRequest").get("data").get("user").get("accessToken")
    r = requests.get(link) print("Email Id= " + r.json()["email"]) print("Name= " + r.json()["name"])

Mise à jour du 25 octobre 2018:

Depuis le 13 septembre 2018, il existe désormais un moyen beaucoup plus simple d'accéder au compte de l'utilisateur si votre projet utilise Google Sign-In. Google Sign-In for Assistant vous fournira un jeton d'identifiant contenant des informations sur l'utilisateur, y compris son identifiant Google, avec son autorisation. Cette autorisation peut être accordée simplement en utilisant la voix et est assez simple.

Vous pouvez combiner cela avec une connexion Google basée sur le Web ou sur une application pour obtenir leur autorisation d'accéder aux étendues OAuth si vous devez accéder aux API de Google.

Mise à jour du 25 octobre 2017:

Vers le 4 ou le 7 octobre, Google a mis à jour (à nouveau) sa stratégie de restauration des langages limitant les points de terminaison OAuth valides. Les termes incluent maintenant

Lorsque vous implémentez la liaison de compte avec OAuth, vous devez posséder votre point de terminaison OAuth.

et il apparaît (d'après les commentaires ci-dessous) qu'ils vérifient maintenant les points de terminaison Google pour empêcher cette méthode de fonctionner.

À ce stade, vous ne pouvez configurer que votre propre serveur OAuth2.

Message original:

En gros, les tâches d’authentification que vous devez faire sont divisées en quatre parties:

  1. Configurez votre projet (dans la console de cloud) de sorte que l'API de calendrier soit activée et que le client OAuth2 soit correctement configuré.
  2. Configurez l'action pour la liaison de compte dans la console d'actions.
  3. Configurez les actions sur l'intégration de Google pour votre agent API.AI afin d'indiquer que la connexion est requise.
  4. Lorsque API.AI appelle votre échange Web pour réaliser une intention, il inclut un jeton d'authentification dans le cadre du JSON. Vous pouvez utiliser ce jeton pour appeler les API Google dont vous avez besoin.

Configurer le projet cloud

Vous devez configurer votre projet cloud de sorte qu'il ait accès aux API Google dont vous avez besoin et configurer l'ID client, le secret et l'URI de redirection du client OAuth2.

  1. Accédez à la page https://console.cloud.google.com/apis/dashboard et assurez-vous que le projet avec lequel vous travaillez est sélectionné. Assurez-vous ensuite que les API dont vous avez besoin sont activées.

  2. Sélectionnez le menu "Credentials" sur la gauche. Vous devriez voir quelque chose comme ça:

  1. Sélectionnez "Créer les informations d'identification", puis "ID client OAuth".

  2. Sélectionnez qu'il s'agit d'une "application Web" (c'est ... un peu ...)

  3. Entrez un nom. Dans la capture d'écran ci-dessous, j'ai utilisé "Action client". Je me souviens donc que c'est en fait pour Actions sur Google.

  4. Dans la section "URI de redirection autorisés", vous devez inclure un URI de la forme https://oauth-redirect.googleusercontent.com/r/your-project-id remplaçant la partie "your-project-id" par .. . votre identifiant de projet dans la console Cloud. À ce stade, l’écran devrait ressembler à ceci:

  5. Cliquez sur le bouton "Créer" et vous obtiendrez un écran avec votre identifiant client et votre secret. Vous pouvez en obtenir une copie maintenant, mais vous pouvez aussi les obtenir plus tard.

  6. Cliquez sur "Ok" et vous serez ramené à l'écran "Credentials" avec le nouvel ID client ajouté. Vous pouvez cliquer sur l'icône en forme de crayon si vous avez besoin d'obtenir à nouveau l'ID et le secret (ou réinitialiser le secret s'il a été compromis).

Configurer la console d'action

Une fois OAuth configuré pour le projet, nous devons dire à Actions que c’est ce que nous utiliserons pour authentifier et autoriser l’utilisateur.

  1. Accédez à la page https://console.actions.google.com/ et sélectionnez le projet avec lequel vous allez travailler.

  2. Dans l’aperçu général, parcourez toutes les configurations nécessaires jusqu’à l’étape 4 «Liaison de compte». Cela peut vous obliger à définir des noms et des icônes - vous pouvez y revenir plus tard si nécessaire pour les corriger.

  1. Sélectionnez le type de "Code d'autorisation" attribué, puis cliquez sur Suivant.

  1. Dans la section Informations sur le client, entrez l'ID client et le secret client à partir de la création des informations d'identification dans la console Cloud. (Si vous oubliez, accédez à la section Informations d'identification de l'API de la console cloud et cliquez sur le crayon.)

  2. Pour l'URL d'autorisation, entrez https://accounts.google.com/o/oauth2/v2/auth

  3. Pour l'URL du jeton, entrez https://www.googleapis.com/oauth2/v4/token

  4. Cliquez sur Suivant

  1. Vous configurez maintenant votre client pour les étendues que vous demandez. Contrairement à la plupart des autres endroits, vous entrez dans les portées - vous devez en avoir un par ligne. Puis cliquez sur Suivant.

  1. Vous devez entrer des instructions de test. Avant de soumettre votre action, ces instructions doivent contenir un compte de test et un mot de passe que l'équipe de révision peut utiliser pour l'évaluer. Mais vous pouvez simplement y mettre quelque chose pendant les tests, puis cliquer sur le bouton Enregistrer.

Configurer API.AI

Dans API.AI, vous devez indiquer que l'utilisateur doit se connecter pour utiliser l'action.

  1. Allez sur https://console.api.ai/ et sélectionnez le projet avec lequel vous travaillez.

  2. Sélectionnez "Intégrations" puis "Actions sur Google". Allumez-le si vous ne l'avez pas déjà fait.

  3. Cliquez sur la case à cocher "Connexion requise pour l'intention de bienvenue".

Gérer les choses dans votre Webhook

Après toute cette configuration, la gestion des éléments de votre compte Webhook est relativement simple! Vous pouvez obtenir un jeton d'accès OAuth de l'une des deux manières suivantes:

  • Si vous utilisez la bibliothèque JavaScript, appelez app.getUser().authToken

  • Si vous consultez le corps JSON, il se trouve dans originalRequest.data.user.accessToken

Vous utiliserez ce jeton d’accès pour passer des appels contre les points de terminaison des API de Google à l’aide de méthodes définies ailleurs.

Vous n'avez pas besoin d'un jeton d'actualisation - l'Assistant doit vous remettre un jeton d'accès valide, sauf si l'utilisateur a révoqué l'accès.





actions-on-google