IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Automatisation de la création d'équipes Teams [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de Grobln
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2022
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2022
    Messages : 14
    Par défaut Automatisation de la création d'équipes Teams
    Bonjour à tous,

    Pour le compte de mon entreprise, je dois automatiser la création d'une équipe Teams dès lors qu'un nouveau client est enregistré. Naturellement, je me suis orienté vers de la prog afin de réaliser ce projet et jusqu'à présent, je suis bloqué à l'étape de création de l'équipe. Je passe par l'envoie d'une requête HTTP à Microsoft Graph, qui devrait normalement me permettre la création d'une équipe mais celle-ci refuse de s'exécuter. Je vous mets ci-dessous mon code avec l'erreur que j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    import json, requests
     
    client_id = "***"
    client_secret = "***"
    tenant_id = "***"
    url_creation = "https://graph.microsoft.com/v1.0/teams"
    user_id = "***"
     
    def get_access_token():
        access_token = ""
        token_url = "https://login.microsoftonline.com/{}/oauth2/v2.0/token".format(tenant_id)
        token_data = {
            "grant_type": "client_credentials",
            "client_id": client_id,
            "client_secret": client_secret,
            "scope": "https://graph.microsoft.com/.default"
        }
        token_response = requests.post(token_url, data=token_data)
        if token_response.status_code != 200:
            print(f"La connexion aux serveurs Microsoft a échoué avec le code d'erreur {token_response.status_code}.")
        else:
            access_token = token_response.json()["access_token"]
            print("La connexion aux serveurs Microsoft est un franc succès.")
        return access_token
     
    access_token = get_access_token()
     
    with open("resultat_liste_equipes_clients.json", "r") as f:
        data = json.load(f)
        ids_equipes = {d["name"]: d["id"] for d in data["value"]}
        noms_equipes_existantes = list(ids_equipes.keys())
     
    with open("test.json", "r") as e:
        noms_nouvelles_equipes = json.load(e)
     
    for equipe in noms_nouvelles_equipes["value"]:
        nom_equipe = equipe["name"]
        if nom_equipe not in noms_equipes_existantes:
            equipe_data = {
                "template@odata.bind": "https://graph.microsoft.com/v1.0/teamsTemplates('***')?$locale=fr-fr",
                "displayName": nom_equipe,
                "description": "Description de l'équipe",
                "members": [
                    {
                        "@odata.type": "#microsoft.graph.aadUserConversationMember",
                        "roles": [
                            "owner"
                        ],
                        "user@odata.bind": "https://graph.microsoft.com/v1.0/users('***@***')"
                    }
                ]
            }
            headers = {'Authorization': 'Bearer ' + access_token, 'Content-Type': 'application/json'}
            equipe_response = requests.post(url_creation, json=equipe_data, headers=headers)
            if equipe_response.status_code != 201:
                print(f"Impossible de créer l'équipe {nom_equipe} dans Teams avec le code d'erreur {equipe_response.status_code}.")
                print(f"Erreur : {equipe_response.text}")
            else:
                print(f"L'équipe {nom_equipe} a été créée avec succès dans Teams.")
    NB : normalement, mes id de connexion ne sont pas stockés directement dans mon script mais pour un soucis de compréhension, je les ai indiqué.

    En exécutant ce code, j'obtiens cette erreur :
    La connexion aux serveurs Microsoft est un franc succès.
    Impossible de créer l'équipe *** dans Teams avec le code d'erreur 400.
    Erreur : (GPT m'a décris l'erreur) L'erreur "BadRequest" avec le code d'erreur "400" indique que la requête envoyée à l'API de Microsoft Teams est mal formée ou invalide. Plus précisément, l'erreur indique que le modèle d'équipe spécifié avec l'ID "***" et la localisation "fr-FR" est introuvable.

    Le problème est que j'ai obtenu cet id de modèle d'équipe avec une autre requête "https://graph.microsoft.com/beta/teamwork/teamTemplates".
    Si jamais vous connaissez d'autres moyens ou si vous avez la solution à mes problèmes, je prends tout ce qui passe !

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 972
    Par défaut
    Je n'arrive pas à remettre la main sur la page où j'avais obtenu cette information mais l'API Graph de création d'équipe ne permet pas autre local template que "en-US".
    C'était prévu, mais pas implémenté (ça date de l'an dernier).

    J'ai pu dénicher cette page qui n'est pas celle que j'avais vu mais qui dit à peu près la même chose.
    https://learn.microsoft.com/en-us/an...cale-visibilit

    Donc, je te suggère d'essayer sans ce paramètre.
    Bien veiller à ce que l'application possède la permission "Team.Create" (mais tu aurais certainement eu un retour 401).

    Le JSON envoyé a l'air correct mais il faudrait s'assurer que nom_equipe est bien passé avec des double quotes.

  3. #3
    Membre averti Avatar de Grobln
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2022
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2022
    Messages : 14
    Par défaut
    Citation Envoyé par popo Voir le message
    Je n'arrive pas à remettre la main sur la page où j'avais obtenu cette information mais l'API Graph de création d'équipe ne permet pas autre local template que "en-US".
    C'était prévu, mais pas implémenté (ça date de l'an dernier).

    J'ai pu dénicher cette page qui n'est pas celle que j'avais vu mais qui dit à peu près la même chose.
    https://learn.microsoft.com/en-us/an...cale-visibilit

    Donc, je te suggère d'essayer sans ce paramètre.
    Bien veiller à ce que l'application possède la permission "Team.Create" (mais tu aurais certainement eu un retour 401).

    Le JSON envoyé a l'air correct mais il faudrait s'assurer que nom_equipe est bien passé avec des double quotes.
    Je te remercie, en passant mon modèle d'équipe en anglais, le script fonctionne. Je n'ai même pas eu besoin de mettre les doubles quotes pour cela.
    Merci Popo !

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 545
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 545
    Par défaut
    pour les infos sur l'API, on peut en trouver ici
    https://learn.microsoft.com/en-us/gr...-1.0&tabs=http

    Sinon tester (et accéder aux docs) depuis https://developer.microsoft.com/en-u...graph-explorer

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Recrutement] Création d'une team (équipe)
    Par Torshid dans le forum Projets
    Réponses: 12
    Dernier message: 04/06/2010, 16h30
  2. Automatisation de la création d'un nouveau champ
    Par eyango dans le forum Hibernate
    Réponses: 1
    Dernier message: 06/03/2008, 10h13
  3. Création d'une Team afin d'apprendre XNA
    Par Bori-Visions dans le forum Projets
    Réponses: 11
    Dernier message: 07/05/2007, 14h42
  4. automatisation de la création de contrôle
    Par pikafafe dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 27/04/2007, 22h09
  5. []Automatisation de la création de compte dans l'AD de windows
    Par khalan dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 16/12/2005, 13h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo