Utiliser l’option “service account” pour connecter une BD de type FusionTables

Contexte

Si vous avez suivi le tutoriel précédent ou si avez utilisé le composant FusionTablesControl,  vous avez certainement fait face au désagrément qui fait l'objet de ce tutoriel. En effet il était question dans ce tutoriel de créer une application "DonnerMonAvis" via laquelle un internaute lambda peut exprimer son avis et critiques vis à vis d'une de mes vidéos.designer1  Pour ce faire, nous avons conçus une interface  (avec le Designer de MIT AppInventor) comportant quelques renseignements sur ledit utilisateur notamment: ses nom, âge,  vidéo suivie, avis et numéro de téléphone.Toutes ces informations une fois validées devaient être stockées dans une base de données de type FusionTables (nommée DMAtable) qui suit le même schéma que celui des informations sur l'interface.

Seulement, pour qu'un internaute puisse avoir effectivement ses informations stockées dans ladite BD, cette dernière doit être explicitement partagée en modification avec le compte Gmail de l'internaute en question. Plus clairement, pour que l'internaute identifié par le compte toto@gmail.com puisse donner son avis par rapport à la vidéo V, il faudrait aller dans le drive et modifier les paramètres de partage de la DMAtable en ajoutant l'adresse toto@gmail.com avec l'option de modification tel que le montre l'image ci dessous. Dans le cas contraire, on obtient automatiquement l'erreur Error 404 Unauthorized invalid credentials.

share-e1.PNG

Problématique: 

Ceci est assez gênant car une fois que l'application devient publique, on a plus le contrôle des  personnes qui l'utiliseront. Ceci dit, il est donc handicapant d'avoir besoin de partager explicitement la BD avec chaque internaute potentiel dont les possibilités sont infinies.

Objectif

Le but de ce tutoriel est de montrer comment corriger ce désagrément en configurant une fois pour toute la BD ainsi que le composant FusionTablesControl du côté de MIT AppInventor.

Comment faire?

Pour atteindre notre objectif, nous avons quatre (04) à suivre.

Etape préliminaire:

Télécharger le projet correspondant au tutoriel précédent pour avoir la base de compréhension des étapes suivantes.

Etape 1: création d'une clé compte de service

Cette étape se réalise entièrement dans l'espace console de développeurs google accessible à l'adresse: https://console.developers.google.com

  • (facultatif) créer un nouveau projet;
  • s'assurer que l'API de gestion de FusionTables est bien activée dans le  projet courant;
  • dans l'espace du projet courant, créer  une clé de compte de service. Dans le tutoriel précédent  nous avions plutôt utilisé l'identifiant d'une clé API pour pouvoir lier le composant FusionTablesControl à la DMAtable.

creationclecompteservice

  • suivre les consignes de l'écran suivant permettra de créer un service de gestion de FusionTables ainsi que le compte générique qui sera utilisé pour configurer de façon unique l'accès en modification à la BD DMAtable. Il faut préciser:
    • le nom du service pour lequel la clé est créée;
    • les droits dudit compte via le champ "Role". Ici j'ai choisi rôle Editeur;
    • le format à utiliser pour sauvegarder la clé privée: p12. Une fois que le formulaire est validé, un fichier contenant la clé privée est automatiquement téléchargé dans l'ordinateur.
    • creationclecompteservice-e2
  • les étapes suivantes permettent de récupérer l'adresse du compte générique qui sera utilisée pour configurer les droits de modification de la table DMAtable
    • copier l'adresse mdu compte générique  qui apparaît dans la ligne correspondante au service de gestion de FusionTables créé précédemment:creationclecompteservice-e5

Etape 2: configurer les droits d'accès à DMAtable

  • copier l'adresse du compte générique liée à la clé cryptographique privée et la spécifier comme compte d'édition de la base de données DMAtableshare-e2

Etape 3:  Configuration du composant FusionTablesControl

Cette étape est très simple, il suffit de joindre le composant FusionTables  à sa clé d'exploitation ainsi qu'au compte "générique" créés via l'interface console.developers.google.com

  • via le Designer de MIT AppInventor, uploader le fichier (contenant la clé privée) de type .p12 (contenant la  clé privée générée) téléchargé précédemmentdesigner2
  •  copier le nom exact de ce fichier pour initialiser une variable appelée FichierCle dans le bout de code suivant:

blocks.PNG

Documents et ressources:

  • https://youtu.be/TWL7fL-ZMkc
  • https://puravidaapps.com/fusionservice.php

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *