Skip to main content

SharePoint Export via Graph API

ThisMit interfacedieser allowsSchnittstelle integrationkann withdie Microsoft's officialoffizielle SharePoint Graph API tovon communicateMicrosoft withintegriert awerden, um mit einem SharePoint directory.Verzeichnis zu kommunizieren.
ADafür registeredist eine registrierte Microsoft Azure applicationApplikation is required for this.notwendig.

IntegratedIntegrierte Services of theder Graph API

  • UploadDokumente documentsin toein azuvor pre-defineddefiniertes SharePoint directory.Verzeichnis hochladen

Access PermissionsZugangsberechtigungen in Microsoft Azure

RequiredBenötigte ApplicationsApplikationen

CreateErstellen twoSie newzwei applicationsneue Applikationen in Microsoft Azure.
OneEine isdient usedzu foradministrativen administrativeZwecken, purposes,die theAndere otherfür forden theNutzer user itself.selbst.

ToZur grantBewilligung theder followingfolgenden permissions,Rechte awird userein withUser administrativemit rightsAdministrationsrechten in Microsoft Azure is required.benötigt.

Die

TheRechte permissionskönnen canim be added in theMenü "API Permissions" menu(im (indeutschen the German client:Client: "API-Berechtigungen"):  hinzugefügt werden:

  • TheDie adminAdmin-Applikation applicationbenötigt requiresdie the API permissionAPI-Berechtigung Sites.FullControl.All.
  • TheDie userNutzer-Applikation applicationbenötigt requiresdie the API permissionAPI-Berechtigung Sites.Selected.

In theder adminAdmin-Applikation application,muss aein userUser mustim beMenü created in the Certificates & secrets menu.erstellt werden.
ThisDieser userUser isist requirednötig, toum grantdie theNutzer-Applikation necessarymit permissionsden tonötigen theRechten user application.auszustatten.

Bildschirmfoto 2025-02-04 um 15.19.58.pngAbbildung - Registrierte Microsoft Applikation "Neue SharePoint Applikation"

PermissionsRechte forfür thedie User ApplicationNutzer-Applikation

ForFür thisdiesen section,Abschnitt youbenötigen willSie needdie theDaten datader fromzuvor theerstellten previously created admin application.Admin-Applikation.

TheDie userNutzer-Applikation applicationmuss mustzwingend bedie explicitlyBerechtigungen grantedauf permissionsdie tovon theIhnen desiredgewünschte SharePoint site.Seite erhalten.
ForDafür this,ist thedie IDId ofder theSharePoint-Seite notwendig.

Bedauerlicherweise ist es zum aktuellen Zeitpunkt nicht möglich, die SharePoint siteSeiten isId required.über die grafische Oberfläche ausfindig zu machen (Stand März 2025).

Unfortunately,Daher aswird ofwie Marchfolgt 2025,beschrieben, itwie isdie notId possibleder toSeite retrieveermittelt theund SharePointdie siteErteilung IDder throughBerechtigung the graphical interface.

Therefore, the following describes how to determine the site ID and grant the permission usingper curl requests.Requests erteilt werden kann.

Einloggen

Login

Zu

First,erst youbenötigen needSie aeinen Bearer TokenToken, toum authenticatesich withan theder API.API Thiszu isauthentifizieren. doneDies usingerfolgt thedurch followingfolgenden request:Request:

  • URL:

    URL: https://login.microsoftonline.com/<TENANT_ID>/oauth2/v2.0/token

  • HTTP Method:Methode: POST

  • Request Body Type:Typ: form-data

  • Request Body:

    • client_id:<CLIENT_ID>

    • client_secret:<CLIENT_SECRET>

    • grant_type:client_credentials

    • scope:https://graph.microsoft.com/.default

InsteadStatt of "<TENANT_ID>", "<CLIENT_ID>," andund "<CLIENT_SECRET>," youmüssen mustSie useIhre yourjeweiligen respectiveDaten credentials.Youverwenden. can
Wo findSie thesediese credentialsDaten finden steht in theden sectionsAbschnitten "Feld Tenant Id", "Feld Client Id" andund "Feld Client Secret" ofdieses this article.Artikels.

HereAnbei is the correspondingder cURL command:Befehl:

curl --location 'https://login.microsoftonline.com/<TENANT_ID>/oauth2/v2.0/token' \--form 'client_id="<CLIENT_ID>"' \--form 'client_secret="<CLIENT_SECRET>"' \--form 'grant_type="client_credentials"' \--form 'scope="https://graph.microsoft.com/.default"'
ThisDieser requestRequest returnsgibt theden Bearer Token inzurück, theim Index "access_token" fieldder ofResponse. theDieser response.
InBearer theToken followingwird instructions,im thisfolgenden token will be referred to as "<BEARER_TOKEN>" togenannt, indicatezur whereVerdeutlichung itwo shoulddieser beeinzusetzen used.ist.
RetrieveSite Id erhalten
Die Site IDId

Thewird Sitefür IDden isRequest requiredzu forden theRechten permission request and can be obtained as follows:

benötigt:
  • URL: https://graph.microsoft.com/v1.0/sites/<TENANT>.sharepoint.com/sites/<NAME>
  • HTTP Methode: GET
  • Header: "Authorization: Bearer <BEARER_TOKEN>"

HereAnbei is the correspondingder cURL command:Befehl:

curl --location 'https://graph.microsoft.com/v1.0/sites/<TENANT>.sharepoint.com:/sites/<NAME>' \--header 'Authorization: Bearer <BEARER_TOKEN>'

TheDie responseResponse fromdieses thisRequests requestist isetwas aumständlicher bitzu morelesen, complexein to read. Here's an example:Beispiel:

{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#sites/$entity",
"createdDateTime": "2025-03-13T00:11:15.033Z",
"description": "TestDescription",
"id": "<TENANT>.sharepoint.com,808dec17-aa6d-4158-a9fe-8caa8d909dff,81f7ad14-65ae-46c2-b0fc-10602e9401cc",
"lastModifiedDateTime": "2025-03-13T07:07:19Z",
"name": "TestName",
"webUrl": "https://<TENANT>.sharepoint.com/sites/<SITE_NAME>",
"displayName": "TestName",
"root": {},
"siteCollection": {
"hostname": "<TENANT>.sharepoint.com"
}
}

In this case, theDie Site IDId isin thediesem valueFall ist der Wert 808dec17-aa6d-4158-a9fe-8caa8d909dff. 
ItEr isbefindet locatedsich inim theIndex "id" fieldund ofist theder responsemittlere andder isWerte the(wenn middleden partWert ofan theseinen valueKommata when the string is split by commas.aufteilt).

GrantZugriffsrechte Permissionserteilen

ToFür grantdie accessZugriffsrechte permissions,benötigen yousie needdie the clientClient ID andder theNutzer-Applikation nameund ofden theNamen. user
Diese application.setzen Sie an der Stelle von "<NUTZER_APPLIKATION_CLIENT_ID>" bzw. "<NUTZER_APPLIKATION_NAME>" ein.
InsertDie themRechte inzum placeSchreiben ofbeinhalten <USER_APPLICATION_CLIENT_ID>auch anddie <USER_APPLICATION_NAME>.
Write permissions also include read permissions.Leserechte.

  • URL: https://graph.microsoft.com/v1.0/sites/<SITE_ID>/permissions
  • HTTP Methode: POST
  • Request Body Type: JSON
  • Request Body:
    • {
      "roles": [
      "write"
      ],
      "grantedToIdentities": [
      {
      "application": {
      "id": "<USER_APPLICATION_CLIENT_IDNUTZER_APPLIKATION_CLIENT_ID>",
      "displayName": "<USER_APPLICATION_NAMENUTZER_APPLIKATION_NAME>"
      }
      }
      ]
      }

HereAnbei is the correspondingder cURL command:Befehl:

curl --location 'https://graph.microsoft.com/v1.0/sites/<SITE_ID>/permissions' \
--header 'Authorization: Bearer <BEARER_TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
  "roles": ["write"],
  "grantedToIdentities": [{
    "application": {
      "id": "<NUTZER_APPLIKATION_CLIENT_ID>",
      "displayName": "<NUTZER_APPLIKATION_NAME>"
    }
  }]
}'

Der Server gibt im Erfolgsfall eine Response mit dem Statuscode 201 zurück.
Da der Statuscode aussagekräftig genug ist, kann der Inhalt der Response vernachlässigt werden.

Konfiguration

Um diese Schnittstelle zu verwenden und Aktionen auszuführen, muss an der Squeeze Dokumentenklasse eine Export-Schnittstelle definiert werden.
Die benötigten Zugangsdaten entnehmen Sie aus der Nutzer-Applikation.

Authentifizierung

Bildschirmfoto 2025-02-17 um 09.29.38.png
Abbildung - Export Interface SharePoint GraphAPI (WIP)

Feld Beschreibung

Für das Export Interface kann ein Name angegeben werden, im Feld Beschreibung.

Feld Host

In diesem Feld wird die Adresse zur SharePoint Seite hinterlegt. Diese hat folgendes Muster: <TENANT>.sharepoint.com/sites/<NAME>.

Feld Tenant Id

Die Tenant Id befindet sich in der Übersicht einer registrierten App. Eine Auflistung dieser Apps finden sie hier.
Um die Liste zu sehen müssen Sie eingeloggt sein.

Die Tenant Id wird auf der Seite auch "Directory (tenant) ID".

Feld Client Id

Die Tenant Id befindet sich in der Übersicht einer registrierten App. Eine Auflistung dieser Apps finden sie hier.
Um die Liste zu sehen müssen Sie eingeloggt sein.

Hier wird sie auch unter dem Begriff "Application (client) ID" geführt.

Feld Client Secret

Die Tenant Id befindet sich in der Übersicht einer registrierten App. Eine Auflistung dieser Apps finden sie hier.
Um die Liste zu sehen müssen Sie eingeloggt sein.

Das Client Secret wird innerhalb der registrierten App hinterlegt. Das dafür nötige Menü finden Sie in, in der ausgewählten App, unter dem Menü "Certificates & secrets".

Für das Erstellen eines Secrets müssen sie lediglich eine aussagekräftige Beschreibung angeben, und den Zeitraum, in welchem das Secret valide ist.
Das Client Secret wird bei Microsoft unter "Secret Value" geführt. Diese Information wird nur einmalig angezeigt, aus diesem Grund sollte es in einer sicheren Umgebung gespeichert werden.
Verwechseln Sie das Client Secret nicht mit "Secret Value".

Feld Entity

Über die Entity wird der Service ausgewählt, welchen Sie verwenden möchten:

  • SharePoint Document Export
    • Service um ein Dokument hochzuladen
Feld Export Folder Structure

Dateien werden alle in das Home Verzeichnis des SharePoint Verzeichnisses hochgeladen.
Um zu spezifizieren, in welche Verzeichnis Struktur ein Dokument abgelegt werden soll, können in dieser Auswahlliste mehrere Felder ausgewählt werden.
Die Felder werden durch ihre in SQUEEZE erkannten Daten ersetzt. So könnte beispielsweise die Auswahl des Feldes "IBAN" dazu führen, dass ein Dokument in das Verzeichnis der erkannten IBAN abgelegt wird (nicht in einem Verzeichnis mit dem Namen "IBAN").

Feld Drive

Bei der korrekten Eingabe von Host, Tenant ID, Client ID und dem Client Secret, wird im Feld Drive eine Liste von möglichen Verzeichnissen aufgeführt, welches als Home Verzeichnis des SharePoints dienen soll, das Sie auswählen müssen.

Feld Create Folder Structure

Diese Funktion erstellt beim Wert "Ja" ein Pfad Verzeichnis, auch wenn es vorher nicht existiert.
Sollte das Verzeichnis bereits existieren wird kein neues Verzeichnis erstellt.
Der Pfad für das Verzeichnis wird durch das Feld Export Folder Structure bestimmt.

Beim Wert "Nein" wird beim Export an Sharepoint geprüft, ob der Verzeichnis Pfad existiert.
Existiert das Verzeichnis, dann werden die verarbeiteten Dokumente hochgeladen (exportiert).
Existiert das Verzeichnis jedoch nicht, dann wird das Dokument nicht hochgeladen (nicht exportiert).
Es wird beim Export eine entsprechende Fehlermeldung ausgegeben. 
Dadurch soll vermieden werden, das unerwartete Verzeichnisse erstellt werden und Dokumente ggf. verschwinden.

Beispiel

Bildschirmfoto 2025-02-17 um 10.15.26.png
Abbildung - Beispiel ausgefülltes Formular für Export Interface (WIP)

Wenn wir eine neue Applikation in Microsoft Azure erstellt haben, rufen wir diese auf und erhalten folgende Ansicht.

Bildschirmfoto 2025-02-04 um 15.19.58.pngAbbildung - Registrierte Microsoft Applikation "Neue SharePoint Applikation"

Auf dieser Abbildung ist zu sehen was die Client ID ist, sowie wo die Tenant ID zu finden ist.
Bei Auswahl des Menüs "Certificates & secrets" existiert ein kleiner Button mit dem Namen "New client secrets". Nachdem die nötigen Daten angegeben wurden erhalten wir einen neuen Eintrag:

Bildschirmfoto 2025-02-04 um 15.29.20.png

Feldwerte / Metadaten exportieren

Um Feldwerte als Metadaten zu exportieren, beim Upload, müssen diese in der Dokumentenklasse angegeben werden.
Dafür muss das nötige Feld ausgewählt werden, und der entsprechende Wert muss im Feld "Name (Zielsystem)" eingetragen werden.


image-1649668277158.pngAbbildung - Kopfdaten-Felder der Dokumentenklasse