CIIFragments Studio est agréée CII : récupérez jusqu'à 20 % de vos dépenses en développement logicielEn savoir plus

Intégration API Microsoft 365

Nous développons votre connecteur Microsoft 365

Nous passons par Microsoft Graph pour lire et écrire dans SharePoint et OneDrive, avec un périmètre Sites.Selected défendable. Agenda et courrier sont une autre page.

  • Équipe produit senior
  • connecteurs fichiers Graph en production
  • du cadrage au monitoring
En bref

À quoi sert l'API Microsoft 365 et pourquoi connecter OneDrive ou SharePoint à son logiciel ?

Microsoft 365 est l'environnement de travail standard de la majorité des grandes entreprises françaises : fichiers dans OneDrive et SharePoint, agenda dans Outlook, messages dans Teams. L'intégration via Microsoft Graph permet à votre application de déposer automatiquement des documents dans la bibliothèque SharePoint du client, de lire les fichiers partagés sans que l'utilisateur les télécharge manuellement, et de maintenir la GED à jour sans outil parallèle. On l'intègre quand les équipes clients vivent dans l'environnement Microsoft et que votre logiciel doit s'y insérer sans créer un dossier de stockage supplémentaire que personne n'alimentera.

Cas d'usage

Ce que nos clients construisent sur Graph fichiers

01

Dépôt métier dans la bibliothèque client

Devis, factures, PV atterrissent dans SharePoint. Lien de partage interne plutôt qu'une pièce jointe qui sort du locataire.

02

GED dont la vérité reste SharePoint

Le produit indexe via delta, n'héberge pas le binaire, et réagit à un dépôt dans un dossier « à traiter ».

03

Portail fournisseur borné à un site

Sites.Selected : cette bibliothèque, pas Files.Read.All. C'est souvent la seule version signable par un DSI.

04

Contrat généré, uploadé, suivi

Session reprise au-delà de 10 Mio, invitation Graph aux signataires internes, versions via cTag. Bascule CSOM/REST vers Graph si un connecteur existant traine.

Pour vous

Ce que ça change dans votre GED Microsoft

La technique au service d'un résultat mesurable : le fichier au bon endroit, un périmètre signable, moins de pièces perdues.

Plus de GED parallèle

Le logiciel métier écrit où l'entreprise range déjà. Les dossiers « copie sur le serveur » disparaissent du process.

Un DSI peut signer le connecteur

Accès borné à un site ou une bibliothèque, rôle assigné, journal d'audit. Ce n'est pas un accès à tous les fichiers déguisé.

Un dépôt déclenche le workflow

Le devis arrivé dans la bibliothèque avance le dossier. Plus d'agent de scan sur un partage réseau.

Les gros fichiers passent

Les uploads volumineux sont découpés et repris. Vous n'apprenez pas en production qu'un contrat de 50 Mo casse le flux.

Méthode

Comment nous livrons votre connecteur Microsoft 365

01

Cadrage

Quels sites, quelles bibliothèques, délégué ou application, Selected ou pas. Aucune permission *.All concurrente. On écrit le périmètre avant le client HTTP.

02

Développement

deltaLink par drive, subscriptions 42 300 min, upload session, limiteur en unités de ressource, Retry-After qui pause tout le locataire.

03

Recette

410 sur delta, PUT avec Authorization, fichier à étiquette de sensibilité en app-only, consentement sans POST /permissions. Rejeu hors pointe.

04

Monitoring

Alerte 429 (ils comptent dans le quota), abonnement driveItem, unités consommées. Journal : quelle app, quel site, quel rôle Selected.

Ce que permet l'API

Ce que permet Graph pour SharePoint et OneDrive

Sites, drives, driveItems
GET /sites, /sites/{id}/drives, adressage par id ou par chemin (:). Un site a plusieurs bibliothèques. /me/drive, /groups, /shares.
Delta et notifications
GET .../root/delta, @odata.deltaLink à persister, token=latest possible. Subscriptions driveItem jusqu'à 42 300 minutes. Prefer includesecuritywebhooks pour les droits (pro uniquement).
Upload et download
PUT content pour un petit fichier. createUploadSession au-delà de 10 Mio : fragments < 60 Mio, multiples de 320 Kio, strictement séquentiels. downloadUrl préauthentifiée, 1 heure, non cessible en cache.
Permissions Selected
Sites.Selected, Lists/ListItems/Files.SelectedOperations.Selected. Consentement Entra plus POST /permissions (read, write, owner, fullcontrol). Les trois conditions sont nécessaires.
Lexique

Le vocabulaire Graph fichiers

Sites.Selected
Scope qui ne donne rien tant qu'un rôle n'est pas assigné sur le site (ou la liste, l'item, le fichier). Les trois conditions : scope consenti, permission assignée, jeton qui porte le scope.
@odata.deltaLink
Curseur de la dernière page d'un delta. Une page n'a jamais nextLink et deltaLink ensemble. token=latest : synchroniser à partir de maintenant, sans crawl initial.
createUploadSession
Reprise au-delà de 10 Mio. Fragments multiples de 327 680 octets, séquentiels, < 60 Mio. L'uploadUrl est préauthentifiée : un header Authorization produit 401.
Unités de ressource
1 : lecture, delta avec jeton, download. 2 : listage, delta sans jeton, écriture. 5 : permissions, $expand=permissions compris. C'est le compteur de throttling, pas le nombre de requêtes.
cTag / eTag
cTag : le contenu a changé. eTag : les métadonnées. Comparer cTag avant de retélécharger un binaire. downloadUrl vit une heure et n'est pas invalidée tout de suite si on retire une permission.
Retry-After
Seul signal de throttling SharePoint. L'ignorer aggrave le trou parce que les 429 comptent. On pause toutes les requêtes du locataire pendant la fenêtre, pas seulement l'appel fautif.
À savoir

Les contraintes réelles de Graph fichiers

01

Le throttling n'est pas par site

Couches utilisateur, locataire, application+locataire, charge SharePoint. Paralyser « un autre » site du même locataire puise dans le même seau. Limites d'application selon le nombre de licences, sur 24 h et sur 1 min.

02

Selected sans assignment = zéro accès

Le consentement admin n'est pas l'autorisation métier. Une permission *.All concurrente dans Entra ID anéantit le périmètre. Assigner Selected sur un fichier casse l'héritage.

03

L'upload a deux hôtes mentaux

Bearer sur createUploadSession seulement. Fragments hors ordre : erreur. Fichier protégé par étiquette de sensibilité : pas de replace en app-only, il faut du délégué.

04

CSOM et REST coûtent plus cher

Plus d'unités que Graph pour la même opération, plus des limites internes. Graph est la voie prescrite. Ne pas décorer le User-Agent, c'est une file plus lente. Scans massifs : nuit et week-end du fuseau locataire.

SharePoint ou Google Drive

API SharePoint ou API Google Drive ?

Deux disques d'entreprise. Le bon dépend du tenant déjà payé, pas du SDK.

CritèreMicrosoft 365Cette pageGoogle DriveDrive API v3
Parc typiqueSharePoint / OneDrive du locataireWorkspace, My Drive et shared drives
Périmètre finSites.Selected + POST /permissionsdrive.file + Picker, ou scopes restreints
Incrémentdelta query, deltaLink, token=latestchanges.list, startPageToken
NotificationGraph, jusqu'à ~30 joursPush sans corps, pas de HMAC
QuotaUnités SharePoint, Retry-After seulUnités Drive (5 / 100 / 200 / 50)
Gros fichiersSession, multiples de 320 KioResumable dès 5 Mo, URI 7 jours
Le bon casL'entreprise est déjà sur Microsoft 365L'entreprise est déjà sur Workspace

Agenda et courrier Outlook ne sont pas dans ce comparatif. Box et Dropbox se discutent quand la GED n'est pas le tenant Microsoft ou Google.

Notre expertise

Ce que nous mesurons sur une intégration SharePoint

15 j
premier flux fichiers Graph en production
1 u.
delta avec jeton plutôt qu'un listage à 2
202
accusé webhook avant tout travail
4
développeurs seniors sur le projet
Comparer

Les autres API de fichiers

Si le locataire n'est pas Microsoft 365, ces options se discutent au cadrage.

On combine Microsoft 365 avec

La stack qui entoure SharePoint et OneDrive sur nos projets.

  • Pennylane
  • Yousign
  • n8n
  • PostgreSQL
  • Node.js
FAQ

Intégration SharePoint : vos questions

Application Entra ID, Graph v1.0, périmètre Sites.Selected (consentement puis POST /permissions), User-Agent décoré, delta par drive plutôt qu'un crawl children, subscriptions sur le driveItem, upload en session au-delà de 10 Mio. Accuser le webhook par 202, travailler en file, honorer Retry-After sur tout le locataire. La partie sensible n'est pas le premier GET /sites, c'est les unités de ressource et l'absence de permission *.All concurrente.

Non. Le consentement Entra n'accorde aucun fichier. Il faut ensuite POST /sites/{id}/permissions (ou list / item / file) avec un rôle read, write, owner ou fullcontrol, et un jeton qui porte encore le scope. Les trois conditions sont nécessaires. Une permission Files.Read.All posée « en plus » dans Entra ID écrase le périmètre. C'est l'argument que veut entendre un DSI, et la cause n°1 d'un POC qui « marchait » trop bien.

Un premier flux utile, typiquement dépôt d'un PDF dans une bibliothèque Selected avec lien interne, se livre en deux à trois semaines. Un connecteur GED (delta, webhooks, upload session, audit) demande plutôt six à huit semaines. Une bascule CSOM/REST se chiffre à part (décoration du trafic, compte d'unités, fenêtre hors pointe). Nous cadrons sites et rôles avant de coder. C'est un arbitrage de cadrage, écrit avant le premier appel, pas une surprise de recette.

On suit le tenant. Microsoft 365 : Graph fichiers, Sites.Selected. Workspace : Drive v3, souvent drive.file + Picker pour éviter l'évaluation de sécurité des scopes restreints. Les deux ont un incrément (delta vs changes) et un push à relecture. Box et Dropbox se discutent si la GED est déjà là, hors des deux géants de suite bureautique. C'est un arbitrage de cadrage, écrit avant le premier appel, pas une surprise de recette.

Un deltaLink par drive, token=latest si vous partez de maintenant, webhooks pour le signal, un delta cadencé plutôt qu'un delta par notification si le trafic est dense. $select partout. Jamais children en boucle (2 unités) là où un delta avec jeton suffit (1 unité). Filet : un delta périodique au plus une fois par jour. Scans massifs la nuit du fuseau locataire. Graph Data Connect si le volume sort du throttling interactif.

Un projet d'intégration SharePoint ?

Parlons-en. 30 minutes pour cadrer sites, Sites.Selected, et ce que Graph fichiers permet vraiment, sans recycler la fiche Outlook.

Parler de mon projet SharePoint
Parler de mon projet SharePoint