# Créer une API de profils avec Flow et Sharepoint

  1. Connectez-vous à https://flow.microsoft.com avec votre compte Office 365

  2. Cliquez sur "Créer" au niveau du volet de navigation de gauche

low score
  1. Choisisser ensuite "Flux instantané
low score
  1. Choisissez le trigger "Lors de la récéption d'une demande HTTP" (ou when a HTTP request is received)
low score
  1. Ajoutez le body JSON Schema suivant dans "Schéma JSON du corps de la demande"
{
    "type": "object",
    "properties": {
        "userId": {
            "type": "string"
        },
        "upn": {
            "type": "string"
        },
        "aadId": {
            "type": "string"
        },
        "email": {
            "type": "string"
        },
        "channel": {
            "type": "string"
        },
        "displayName": {
            "type": "string"
        }
    }
}

Ce sont les informations de l'utilisateur envoyées par le chatbot lorsqu'il devra determiner son profil.

Cliquez sur "afficher les options avancée" et choisissez la method "POST".

Pour rappel, l'utilisateur peut parler au chatbot via les canaux suivants :

  • Msteams (Teams)
  • Directline (Skype for Business)
  • Webchat (Webchat)

Vous retrouverez ce code de canal dans la propriété channel du JSON ci-dessus

En fonction du canal, les informations suivantes sont remplies :

  • Skype for Business (directline)

    • email (qui peut également être l'adresse SIP de l'utilisateur si celle-ci est différente de son email)
    • UserId: Un id unique pour l'utilisateur,
    • Display Name : Le display name de l'utilisateur dans l'AD
  • Teams

    • Upn
    • Email
    • aadId: L'id Azure AD de l'utilisateur qui parle au chatbot
    • UserId : Un id unique de l'utilisateur teams
    • Displau Name : Le display name de l'utilisateur dans l'AD
  • Webchat

    • Email (qui correspond à la propriété envoyée dans le UserId de la configuration du webchat)
    • UserId (qui correspond à la propriété envoyée dans le UserId de la configuration du webchat)
    • Display Name (qui correspond à la propriété UserName dans la configuration du webchat)

💡

pas besoin de faire la disctinction entre les canaux si vous n'en avez qu'un de configuré ou si votre email correspond à votre upn et votre sip.

Voici un exemple de liste SharePoint:

low score

Cette liste SharePoint est très simple. Elle contient l'identifiant de l'utilisateur dans la colonne "Title" et son profil attitré dans la colonne "profile".

  1. Cliquez sur ajouter une nouvelle étape
low score
  1. Recherchez la boite "Sharepoint - "Obtenir les éléments" (ou Sharepoint - Get Items)
low score
  1. Configurez la en ajoutant l'adresse du site sharepoint et la liste qui vous servira de base pour récuperer les profils
low score
  1. Cliquez sur "Afficher les options avancées"
low score
  1. Ajoutez la requête de filtre Title eq 'email' en choissant la propriété email depuis la boite de requête
low score
  1. Indiquez "jusqu'au nombre d'échantillon" = 1
low score
  1. Ajoutez une nouvelle étape

  2. Recherchez la boite "Requête - Réponse"

low score
  1. Ajoutez le statu code 200 et dans le body le Json suivant
{
  "user": {
    "userId": "",
    "profile": ""
  }
}

Remplacez les resultats vide par les données de votre requête sur SharePoint:

  • Remplace UserId par la valeur recu en input
low score
  • Remplace Profile par la valeur récupéré sur Sharepoint : first(body('Obtenir_les_éléments')?['value'])?['profile']

Expression = first(body('Get_items')?['value'])?['profile']

low score
low score
  1. Changez le nom de votre flux par un nom compréhensible ( en haut à gauche: par exemple "Récupération des profils").

💾

Cliquez sur enregistrer !.

low score

Votre API est prête à etre testée.

# Tester son API avec Postman

Postman est un utilitaire qui permet d'envoyer des requetes HTTP et d'examiner les retours. Il est téléchargeable gratuitement sur https://www.getpostman.com/

N'importe quel utilitaire HTTP fait l'affaire. Nous utilisons ici postman car c'est un outil de developpement commun.

  1. Cliquez sur +New puis Request ( puis Cancel)
low score
  1. Choisissez POST

  2. Collez l'url de l'API précédemment crée

  3. Dans "Headers" choisissez KEY: Content type et VALUE: application/json

  4. Dans "Body" choisissez "raw" et rentrer par exemple :

{
	"email": "bob.alternant@witivio.com",
	"userId": "bob.alternant@witivio.com",
	"channel": "webchat"
}

Send 
Résultat : {
    "user": {
        "userId": "bob.alternant@witivio.com",
        "profile": "alternant"
    }
}

Cliquez sur "Send".

low score

Voici un exemple de réponse:

low score

Une fois l'API testée, vous pouvez retourner sur la plateforme dans l'onglet Profil et continuer le paramétrage du nouveau profil. Le cadre suivant vous permet donc de configurer les conditions des profils

low score
  • Cadre 1: URL de l'API précédemment crée

  • Cadre 2: La query JSON PATH permet de vérifier le resultat renvoyé par l'API. Elle ressemble toujours à equals('something', 'result') Par exemple, dans notre cas, elle pourrait être : equals('$.user.profile', 'stagiaire'). Le $.user.profile équivaut à la query JSON PATH du retour de l'api. Plus d'infos sur : https://jsonpath.com/

Si besoin, vous pouvez multiplier les appels d'API pour determiner un profil. Pour cela vous pouvez supprimer ou ajouter une nouvelle condition (1). Les deux conditions devront être remplies pour determiner le profil de l'utilisateur (ET logique).

low score

# Commentaires