Sommaire
ToggleDans cet article nous verrons comment envoyer des fichiers dans SharePoint/Teams en utilisant PowerShell et l’API Graph uniquement, sans modules.
Contexte
- Vous avez un site SharePoint
- Vous souhaitez y envoyer des fichiers
- Vous ne voulez pas utiliser de module
Dans cet article je vous montrerai comment utiliser directement l’API Graph sans modules.
Auparavant, j’avais l’habitude d’utiliser le module pnp.powershell et celui-ci fonctionnait très bien. Cependant depuis certaines mises à jour du module, des choses fonctionnent à moitié.
C’est pourquoi j’ai décidé de procéder sans module et je dirais que de manière générale, cela vous évitera toujours des problèmes avec des mises à jours, ainsi qu’une meilleure compréhension de l’API Graph.
Fonctionnement
Nous procèderons comme ci-dessous :
- Création d’une app Azure
- Ajout de permissions
- Ajout secret ou certificat
- Utiliser PowerShell et Graph
*Dans mon cas, j’utiliserai un secret
Obtenir l’ID du site SharePoint
J’ai le site SharePoint suivant : https://systanddeploy.sharepoint.com/sites/Support
Dans le but de pouvoir envoyer des fichiers, il nous faut l’ID correspondant au site.
Pour cela, il vous suffit d’utiliser votre navigateur et de saisir l’adresse ci-dessous :
https://systanddeploy.sharepoint.com/sites/Support/_api/site/id
Création de l’app Azure
1. Allez dans le portail Azure
2. Allez dans App registrations
3. Cliquez sur New registration
4. Saisissez un nom
5. Laissez par défaut et cliquez sur Register
Ajout des permissions
Pour tous les sites
1. Allez dans API permissions
2. Cliquer sur Add a permission
3. Sélectionnez Microsoft Graph
4. Sélectionnez Application permissions
5. Cochez Sites.ReadWrite
6. Cliquez sur Add permissions
7. Cliquez sur Grant admin consent
Pour un site spécifique
Ici nous souhaitons gérer uniquement un site particulier (plus secure quand même).
Nous procèderons comme ci-dessous:
1. Allez dans API permissions
2. Cliquez sur Add a permission
3. Sélectionnez SharePoint
4. Sélectionnez Application permissions
6. Cochez Sites.Selected
7. Cliquez sur Add permissions
8. Cliquez sur Grant admin consent
10. Ouvrez Graph Explorer ici
11. Choisissez la méthode POST
12. Dans url saisissez l’url suivante et remplacez yoursharepointsiteid avec l’ID de votre site :
https://graph.microsoft.com/v1.0/sites/yoursharepointsiteid/permissions
13. Allez dans Request body
14. Saisissez le JSON suivant et remplacez avec vos infos :
{
"roles": ["write"],
"grantedToIdentities": [{
"application": {
"id": "azure app id",
"displayName": "azure app displayname"
}
}]
}
15. Cliquez sur Run query
16. Vous devriez maintenant avoir accès à votre site
Création du secret
1. Allez dans le portail Azure
2. Allez dans votre app Azure
3. Cliquez sur Certificates & secrets
4. Cliquez sur New client secret
Envoyer du contenu dans SharePoint
Nous aurons besoin des infos suivantes :
- L’URL du site SharePoint
- L’ID de l’app Azure
- Le secret lié à votre application
Pour obtenir le script cliquez sur le bouton GitHub ci-dessous :