Freigeben über


Schnellstart: Web-API mit clientseitigem JavaScript und Visual Studio Code

Diese Schnellstartanleitung zeigt, wie Sie mit den folgenden Technologien eine Verbindung mit Dataverse herstellen und die Web-API verwenden können.

Technologie Beschreibung
JavaScript Eine Programmiersprache für die Webentwicklung, die interaktive Inhalte ermöglicht. Es wird in Browsern für clientseitiges Scripting ausgeführt und kann serverseitig mit Node.js verwendet werden.
Visual Studio Code Ein schlanker Open-Source-Code-Editor mit Debugging, Syntaxhervorhebung und Plug-In-Unterstützung.
Single-Page-Webanwendungen (SPAs) Webanwendungen, die eine einzelne HTML-Seite laden und den Inhalt dynamisch aktualisieren, während der Benutzer mit der App interagiert. Dieser Ansatz sorgt für eine reibungslosere und schnellere Benutzererfahrung, indem das erneute Laden von Seiten reduziert und die Leistung verbessert wird.
Microsoft-Authentifizierungsbibliothek für JavaScript (MSAL.js) Eine Bibliothek, die die Authentifizierung und Autorisierung für Webanwendungen mithilfe von Microsoft-Identitätsplattformen ermöglicht. Es vereinfacht die Integration der sicheren Anmeldung und des Token-Erwerbs für den Zugriff auf geschützte Ressourcen.
Cross Origin Resource Sharing (CORS) Eine SPA-Anwendung kann clientseitiges JavaScript mit der Dataverse-Web-API verwenden, da CORS aktiviert ist. CORS ist eine Sicherheitsfunktion in Webbrowsern, die den kontrollierten Zugriff auf Ressourcen auf einem Webserver von einem anderen Ursprung aus ermöglicht. Dadurch können Webanwendungen, die Same-Origin-Richtlinie umgehen und so den sicheren Datenaustausch über verschiedene Domänen hinweg erleichtern.

Goal

Diese Schnellstartanleitung konzentriert sich auf die Verbindung mit der Dataverse-Web-API mit JavaScript unter Verwendung einer SPA-Client-Anwendung mit einer minimalen Anzahl von Schritten. Wenn Sie diese Schnellstartanleitung abgeschlossen haben, haben Sie die folgenden Möglichkeiten:

  • Sich bei Dataverse anmelden und eine Verbindung herstellen
  • Die WhoAmI-Funktion aufrufen und Ihren UserID-Wert anzeigen.

Schnellstart erfolgreich durchgeführt

Wenn Sie diese Schnellstartanleitung abschließen, können Sie das Beispiel für Web-API-Datenvorgänge (clientseitiges JavaScript) ausprobieren, das erweiterte Funktionen demonstriert.

Anmerkung

Diese Schnellstartanleitung gilt nicht für die folgenden clientseitigen JavaScript Szenarien:

Szenario Erfahren Sie mehr
Skripts für die modellgesteuerte Anwendung - Anwenden von Geschäftslogik mit Client-Skripting in modellgesteuerten Anwendungen mit JavaScript
- Xrm.WebApi (Client-API-Referenz)
Power Apps-Komponentenframework - Codekomponenten-Web-API
- Implementieren einer Web-API-Komponente
Power Pages-Portale Power Pages-Web-API für Portale

In diesen Szenarien bietet Ihnen der jeweilige Anwendungstyp die Möglichkeit, Anforderungen zu senden, anstatt die für JavaScript native Fetch-API direkt zu verwenden, wie in dieser Schnellstartanleitung gezeigt. Clientseitige Skripts in modellgesteuerten Apps werden im Kontext einer authentifizierten Anwendung ausgeführt, sodass nicht für jede Anforderung ein Zugriffstoken erforderlich ist.

Anforderungen

In der folgenden Tabelle werden die Voraussetzungen für die vollständige Bearbeitung dieser Schnellstartanleitung sowie Beispiele für Web-API-Datenvorgänge (clientseitigs JavaScript) beschrieben.

Voraussetzung Beschreibung
Berechtigungen zum Erstellen einer Entra-App-Registrierung Sie können diese Schnellstartanleitung nicht abschließen, ohne eine Microsoft Entra-App-Registrierung erstellen zu können, um sie zu aktivieren.

Wenn Sie sich nicht sicher sind, ob Sie das können, probieren Sie den ersten Schritt Eine SPA-Anwendung registrieren aus und finden Sie es heraus.
Visual Studio Code Wenn Visual Studio Code nicht auf Ihrem Computer installiert ist, müssen Sie Visual Studio Code herunterladen und installieren, um diese Schnellstartanleitung ausführen zu können.
Node.js Node.js handelt es sich um eine Laufzeitumgebung, mit der Sie JavaScript serverseitig ausführen können. Mit dieser Schnellstartanleitung wird eine SPA-Anwendung erstellt, die JavaScript clientseitig in einem Browser und nicht in der Node.js-Laufzeit ausführt. Der Node Package Manager (npm) wird jedoch mit Node.js installiert, und Sie benötigen npm, um Parcel und die MSAL.js-Bibliothek zu installieren.
Parcel Moderne Webanwendungen weisen in der Regel viele Abhängigkeiten von Open-Source-Bibliotheken auf, die mithilfe von npm und Skripts verteilt werden und während des Build-Prozesses verwaltet und optimiert werden müssen. Diese Tools werden als „Bundler“ bezeichnet. Das häufigste ist Webpack. Diese Schnellstartanleitung verwendet Parcel, da es eine vereinfachte Erfahrung bietet.

Schnellstarts und Beispiele, die SPA-Anwendungen mit verschiedenen Frameworks und Bundlern zeigen, finden Sie unter Beispiele für Microsoft Entra-Single-Page-Webanwendungen. Sie können diese Beispiele mit den in dieser Schnellstartanleitung gezeigten Informationen anpassen, sodass die Dataverse-Web-API verwendet wird.
Webtechnologien HTML-, JavaScript- und CSS-Kenntnisse sind erforderlich, um zu verstehen, wie diese Schnellstartanleitung funktioniert. Sie müssen unbedingt wissen, wie Netzwerkanforderungen mit JavaScript gestellt werden.

Eine SPA-Anwendung registrieren

Dieser Schritt ist der erste, denn wenn Sie keine App registrieren können, können Sie diesen Schnellstart nicht abschließen.

Alle die folgenden privilegierten Microsoft Entra-Rollen enthalten die erforderlichen Berechtigungen:

Wenn Sie die Anwendung konfigurieren, benötigen Sie eine Anwendungs-ID (Client-ID) und die ID Ihres Microsoft Entra-Mandanten. Sie sollten auch einen aussagekräftigen Namen für die Anwendung wählen, damit die Benutzer wissen, wofür die Anwendung erstellt wurde.

Registrieren Sie die App

Sie können Ihre Anwendung wie folgt registrieren:

  • Microsoft Entra-Webanwendungs-Benutzeroberfläche
  • Azure PowerShell New-AzADApplication-Cmdlet.

Die Anwendungsregistrierung erstellen

  1. Melden Sie sich beim Microsoft Entra Admin Center an.

  2. Wenn Sie Zugriff auf mehrere Mandanten haben, verwenden Sie das Symbol Einstellungen im oberen Menü, um über das Menü Verzeichnisse + Abonnements zu dem Mandanten zu wechseln, in dem Sie die Anwendung registrieren möchten.

  3. Wechseln Sie zu Identität>Anwendungen>App-Registrierungen und wählen Sie dann Neue Registrierung aus.

  4. Geben Sie einen Namen für die Anwendung ein, z. B. Dataverse Web API Quickstart SPA.

  5. Wählen Sie für Unterstützte Kontotypen unter Wer kann diese Anwendung verwenden oder auf diese API zugreifen die Option Nur Konten in diesem Organisationsverzeichnis (<Ihr Mandantenname> – Einzelner Mandant) aus.

  6. Für Umleitungs-URI (optional)

    1. Wählen Sie beo Plattform auswählen die Option Single-Page-Webanwendung (SPA) aus.
    2. Geben Sie als Wert http://localhost:1234 ein.
  7. Wählen Sie Registrieren, um Ihre Änderungen zu speichern.

  8. In dem Fenster für die App-Registrierung, die Sie erstellt haben, finden Sie auf der Registerkarte Übersicht unter Grundlagen die folgenden Werte:

    • Anwendungs(client)-ID
    • Verzeichnis (Mandant) ID
  9. Kopieren Sie diese Werte, da Sie sie benötigen, wenn Sie die .env Datei erstellen, um Umgebungsvariablen zu verwenden.

Eine Dataverse-user_impersonation-Berechtigung hinzufügen

  1. Wählen Sie im Bereich Verwalten die Option API-Berechtigungen aus.
  2. Wählen Sie Berechtigung hinzufügen aus.
  3. Wählen Sie im Flyout API-Berechtigungen anfordern die Registerkarte APIs, die meine Organisation verwendet aus.
  4. Geben Sie „Dataverse“ ein, um die Anwendungs-ID (Client-ID) 00000007-0000-0000-c000-000000000000 zu finden.
  5. Wählen Sie die Dataverse-Anwendung aus.
  6. Unter Berechtigungen auswählen ist user_impersonation die einzige verfügbare delegierte Berechtigung. Wählen Sie sie aus.
  7. Wählen Sie Berechtigungen hinzufügen aus.

Anmerkung

Wenn Sie nicht über die Berechtigungen zum Erstellen einer App-Registrierung für Ihr Unternehmen verfügen, können Sie über den Power Apps-Entwicklerplan einen eigenen Mandanten einrichten.

Node.js installieren

  1. Gehen Sie zu Node.js herunterladen.

  2. Wählen Sie das entsprechende Installationsprogramm für Ihr Betriebssystem (Windows, macOS oder Linux) aus und laden Sie es herunter.

  3. Das Installationsprogramm ausführen. Stellen Sie sicher, dass Sie die Standardoption akzeptieren: Npm, den empfohlenen Paketmanager für Node.js, installieren.

  4. Überprüfen Sie die Installation, indem Sie ein Terminal oder eine Eingabeaufforderung öffnen, diese Befehle eingeben und die Eingabetaste drücken.

    • node -v
    • npm -v

    Sie sollten etwas sehen, das ungefähr so aussieht:

    PS C:\Users\you> node -v
    v22.14.0
    PS C:\Users\you> npm -v
    9.5.0
    PS C:\Users\you>
    

Projekt erstellen

Anmerkung

Sie können diese Schritte überspringen, indem Sie das Repository PowerApps-Beispiele klonen oder herunterladen. Die vollständige Anwendung für diese Schritte finden Sie unter /dataverse/webapi/JS/quickspa. Folgen Sie den Anweisungen in der Infodatei.

Die Anweisungen in diesem Abschnitt führen Sie durch die Installation von Abhängigkeiten von npm, das Erstellen der Ordnerstruktur und das Öffnen von Visual Studio Code.

  1. Öffnen Sie ein Terminalfenster an einem Ort, an dem Sie ein Projekt erstellen möchten. Wir verwenden für diese Anweisungen C:\projects.

  2. Geben Sie die folgenden Befehle ein, und drücken Sie die Eingabetaste, um die folgenden Aktionen auszuführen:

    Command Aktion
    mkdir quickspa Erstellen Sie einen neuen Ordner mit dem Namen quickspa.
    cd quickspa Gehen Sie zum neuen quickspa-Ordner.
    npm install --save-dev parcel Installieren Sie Parcel und initialisieren Sie das Projekt.
    npm install @azure/msal-browser Installieren Sie die MSAL.js-Bibliothek.
    npm install dotenv Installieren Sie dotenv, um auf Umgebungsvariablen zuzugreifen, in denen potenziell vertrauliche Konfigurationsdaten gespeichert sind.
    mkdir src Erstellen Sie einen src-Ordner, in dem Sie in den folgenden Schritten HTML-, JS- und CSS-Dateien für Ihre App hinzufügen.
    code . Öffnen Sie Visual Studio Code im Kontext des quickspa-Ordners.

Ihr Projekt sollte im Visual Studio Code-Explorer wie folgt aussehen:

Zeigt das neu erstellte quickspa-Projekt an, bevor Dateien hinzugefügt werden.

Die .env-Datei erstellen

Im Hinblick auf die Sicherheit ist es Best Practice, die Konfigurationsdaten in der Umgebung vom Code getrennt zu speichern.

  1. Erstellen Sie eine neue Datei namens .env im Stammverzeichnis Ihres quickspa-Ordners.

  2. Fügen Sie die Werte aus Ihre App registrieren ein, um die CLIENT_ID- und TENANT_ID-Werte unten zu ersetzen.

    # The environment this application will connect to.
    BASE_URL=https://<yourorg>.api.crm.dynamics.com
    # The registered Entra application id
    CLIENT_ID=11112222-bbbb-3333-cccc-4444dddd5555
    # The Entra tenant id
    TENANT_ID=aaaabbbb-0000-cccc-1111-dddd2222eeee
    # The SPA redirect URI included in the Entra application registration
    REDIRECT_URI=http://localhost:1234
    
  3. Legen Sie den BASE_URL-Wert auf die URL der Web-API-URL für die Umgebung fest, mit der Sie eine Verbindung herstellen möchten.

Anmerkung

Sie checken die .env-Datei nicht ein. Sie schließen sie unter .gitignore-Datei erstellen aus. Möglicherweise möchten Sie jedoch eine .env.example-Datei mit den Platzhalterwerten erstellen, damit die Benutzenden wissen, welche Daten sie enthalten sollte.

Eine HTML-Seite erstellen

In den Anweisungen in diesem Abschnitt wird beschrieben, wie die HTML-Datei erstellt wird, die die Benutzeroberfläche für die SPA-Anwendung bereitstellt.

  1. Erstellen Sie eine neue Datei im src-Ordner namens index.html.

  2. Kopieren Sie diesen Inhalt und fügen Sie ihn in die index.html-Seite ein:

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Dataverse Web API JavaScript Quick Start</title>
        <link rel="stylesheet" href="styles/style.css" />
      </head>
      <body>
        <header>
          <h1>Dataverse Web API JavaScript Quick Start</h1>
          <button id="loginButton">Login</button>
          <button id="logoutButton" class="hidden">Logout</button>
        </header>
        <nav id="buttonContainer" class="disabled">
          <button id="whoAmIButton">WhoAmI</button>
        </nav>
        <main id="container"></main>
        <script type="module" src="scripts/index.js"></script>
      </body>
    </html>
    

Diese HTML stellt die folgenden Elemente bereit:

Element-ID Elementtyp Beschreibung
loginButton Schaltfläche Den Anmeldedialog öffnen.
logoutButton Schaltfläche Den Abmeldedialog öffnen. Standardmäßig ausgeblendet.
buttonContainer Navigation Enthält Schaltflächen, für deren Verwendung der Benutzer angemeldet sein muss. Standardmäßig deaktiviert.
whoAmIButton Schaltfläche Führt die WhoAmI-Funktion aus, um die ID des Benutzenden anzuzeigen.
container main Bereich, in dem dem Benutzer Informationen angezeigt werden können.
Skript Lädt die index.js-Datei, nachdem die restlichen Elemente der Seite geladen wurden.

Ein JavaScript-Skript erstellen

Diese Datei enthält die gesamte Logik, die die index.html-Seite dynamisch macht.

  1. Erstellen Sie einen neuen Ordner im src-Ordner namens scripts.

  2. Erstellen Sie eine neue Datei im scripts-Ordner namens index.js.

  3. Kopieren Sie diesen Inhalt und fügen Sie ihn in die index.js-Seite ein:

    import { PublicClientApplication } from "@azure/msal-browser";
    import 'dotenv/config'
    
    // Load the environment variables from the .env file
    const config = {
       baseUrl: process.env.BASE_URL,
       clientId: process.env.CLIENT_ID,
       tenantId: process.env.TENANT_ID,
       redirectUri: process.env.REDIRECT_URI,
    };
    
    // Microsoft Authentication Library (MSAL) configuration
    const msalConfig = {
      auth: {
        clientId: config.clientId,
        authority: "https://login.microsoftonline.com/" + config.tenantId,
        redirectUri: config.redirectUri,
        postLogoutRedirectUri: config.redirectUri,
      },
      cache: {
        cacheLocation: "sessionStorage", // This configures where your cache will be stored
        storeAuthStateInCookie: true,
      },
    };
    
    // Create an instance of MSAL
    const msalInstance = new PublicClientApplication(msalConfig);
    
    // body/main element where messages are displayed
    const container = document.getElementById("container");
    
    // Event handler for login button
    async function logIn() {
      await msalInstance.initialize();
    
      if (!msalInstance.getActiveAccount()) {
        const request = {
          scopes: ["User.Read", config.baseUrl + "/user_impersonation"],
        };
        try {
          const response = await msalInstance.loginPopup(request);
          msalInstance.setActiveAccount(response.account);
    
          // Hide the loginButton so it won't get pressed twice
          document.getElementById("loginButton").style.display = "none";
    
          // Show the logoutButton
          const logoutButton = document.getElementById("logoutButton");
          logoutButton.innerHTML = "Logout " + response.account.name;
          logoutButton.style.display = "block";
          // Enable any buttons in the nav element
          document.getElementsByTagName("nav")[0].classList.remove("disabled");
        } catch (error) {
          let p = document.createElement("p");
          p.textContent = "Error logging in: " + error;
          p.className = "error";
          container.append(p);
        }
      } else {
        // Clear the active account and try again
        msalInstance.setActiveAccount(null);
        this.click();
      }
    }
    
    // Event handler for logout button
    async function logOut() {
      const activeAccount = await msalInstance.getActiveAccount();
      const logoutRequest = {
        account: activeAccount,
        mainWindowRedirectUri: config.redirectUri,
      };
    
      try {
        await msalInstance.logoutPopup(logoutRequest);
    
        document.getElementById("loginButton").style.display = "block";
    
        this.innerHTML = "Logout ";
        this.style.display = "none";
        document.getElementsByTagName("nav")[0].classList.remove("disabled");
      } catch (error) {
        console.error("Error logging out: ", error);
      }
    }
    
    /**
     * Retrieves an access token using MSAL (Microsoft Authentication Library).
     * Set as the getToken function for the DataverseWebAPI client in the login function.
     *
     * @async
     * @function getToken
     * @returns {Promise<string>} The access token.
     * @throws {Error} If token acquisition fails and is not an interaction required error.
     */
    async function getToken() {
      const request = {
        scopes: [config.baseUrl + "/.default"],
      };
    
      try {
        const response = await msalInstance.acquireTokenSilent(request);
        return response.accessToken;
      } catch (error) {
        if (error instanceof msal.InteractionRequiredAuthError) {
          const response = await msalInstance.acquireTokenPopup(request);
          return response.accessToken;
        } else {
          console.error(error);
          throw error;
        }
      }
    }
    
    // Add event listener to the login button
    document.getElementById("loginButton").onclick = logIn;
    
    // Add event listener to the logout button
    document.getElementById("logoutButton").onclick = logOut;
    
    /// Function to get the current user's information
    /// using the WhoAmI function of the Dataverse Web API.
    async function whoAmI() {
      const token = await getToken();
      const request = new Request(config.baseUrl + "/api/data/v9.2/WhoAmI", {
        method: "GET",
        headers: {
          Authorization: `Bearer ${token}`,
          "Content-Type": "application/json",
          Accept: "application/json",
          "OData-Version": "4.0",
          "OData-MaxVersion": "4.0",
        },
      });
      // Send the request to the API
      const response = await fetch(request);
      // Handle the response
      if (!response.ok) {
        throw new Error("Network response was not ok: " + response.statusText);
      }
      // Successfully received response
      return await response.json();
    }
    
    // Add event listener to the whoAmI button
    document.getElementById("whoAmIButton").onclick = async function () {
      // Clear any previous messages
      container.replaceChildren();
      try {
        const response = await whoAmI();
        let p1 = document.createElement("p");
        p1.textContent =
          "Congratulations! You connected to Dataverse using the Web API.";
        container.append(p1);
        let p2 = document.createElement("p");
        p2.textContent = "User ID: " + response.UserId;
        container.append(p2);
      } catch (error) {
        let p = document.createElement("p");
        p.textContent = "Error fetching user info: " + error;
        p.className = "error";
        container.append(p);
      }
    };
    

Das index.js-Skript enthält die folgenden Konstanten und Funktionen:

Item Beschreibung
config Enthält die Daten, die von der Konfiguration der Microsoft-Authentifizierungsbibliothek (MSAL) verwendet werden.
msalConfig Konfiguration der Microsoft-Authentifizierungsbibliothek (MSAL).
msalInstance Die PublicClientApplication-Instanz der MSAL.
container Das Element, in dem Meldungen angezeigt werden.
getToken Ruft ein Zugriffstoken mithilfe der MSAL ab.
logIn Ereignis-Listener-Funktion für die Anmeldeschaltfläche. Öffnet ein Dialogfeld zur Auswahl eines Kontos.
logOut Ereignis-Listener-Funktion für die Abmeldeschaltfläche. Öffnet ein Dialogfeld zur Auswahl eines Kontos.
whoAmI Asynchrone Funktion, welche die WhoAmI-Funktion aufruft, um Daten aus Dataverse abzurufen.
whoAmIButton-Ereignislistener Die Funktion, welche die whoAmI-Funktion aufruft und die Änderungen der Benutzeroberfläche verwaltet, um die Meldung anzuzeigen.

Eine CSS-Seite erstellen

Die CSS-Datei (Cascading Style Sheet) macht die HTML-Seite attraktiver und spielt eine Rolle bei der Steuerung, wann Steuerelemente deaktiviert oder ausgeblendet werden.

  1. Erstellen Sie einen neuen Ordner namens styles im src-Ordner.

  2. Erstellen Sie eine neue Datei namens style.cssim styles-Ordner.

  3. Kopieren Sie diesen Text und fügen Sie ihn in die style.css-Datei ein:

    .disabled {
       pointer-events: none;
       opacity: 0.5;
       /* Optional: to visually indicate the element is disabled */
    }
    
    .hidden {
       display: none;
    }
    
    .error {
       color: red;
    }
    
    .expectedError {
       color: green;
    }
    
    body {
       font-family: 'Roboto', sans-serif;
       font-size: 16px;
       line-height: 1.6;
       color: #333;
       background-color: #f9f9f9;
    }
    
    h1,
    h2,
    h3 {
       color: #2c3e50;
    }
    
    button {
       background-color: #3498db;
       color: #fff;
       border: none;
       padding: 10px 20px;
       border-radius: 5px;
       box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
       transition: background-color 0.3s ease;
       margin: 5px;
       /* Adjust the value as needed */
    }
    
    button:hover {
       background-color: #2980b9;
    }
    
    header {
       padding-bottom: 10px;
       /* Adjust the value as needed */
    }
    

Die .gitignore-Datei erstellen

Wenn Ihre App mit der Quellcodeverwaltung eingecheckt ist, verhindert das Hinzufügen einer .gitignore-Datei das Einchecken der angegebenen Dateien und Ordner.

  1. Erstellen Sie eine Datei namens .gitignore.

  2. Fügen Sie die folgenden Inhalte hinzu:

    .parcel-cache
    dist
    node_modules
    .env
    

Die .parcel-cache- und dist-Ordner werden angezeigt, wenn Sie die App zum ersten Mal ausführen.

Das Nichteinchecken der .env-Datei ist Best Practice im Hinblick auf die Sicherheit. Möglicherweise möchten Sie eine .env.sample-Platzhalterdatei mit Platzhalterwerten einchecken.

Ihr Projekt sollte im Visual Studio Code-Explorer wie folgt aussehen:

Zeigt das Quickspa-Projekt an, nachdem Dateien hinzugefügt wurden.

package.json Datei konfigurieren

Ihre package.json-Datei sollte in etwa so aussehen:

{
  "devDependencies": {
    "parcel": "^2.14.1",
  },
  "dependencies": {
    "@azure/msal-browser": "^4.7.0",
    "dotenv": "^16.4.7"
  }
}

Fügen Sie dieses scripts-Element unterhalb von dependencies hinzu:

  "dependencies": {
    "@azure/msal-browser": "^4.7.0",
    "dotenv": "^16.4.7"
  },
  "scripts": {
    "start": "parcel src/index.html"
  }

Mit dieser Konfiguration können Sie die Anwendung mithilfe von npm start im nächsten Schritt starten.

Ausprobieren

  1. Öffnen Sie in Visual Studio Code ein Terminalfenster

  2. Geben Sie npm start ein, und drücken Sie die Eingabetaste.

    Anmerkung

    Möglicherweise wird eine Ausgabe in das Terminal geschrieben, während das Projekt zum ersten Mal initialisiert wird. Das ist Parcel, das einige weitere Node-Module installiert, um Probleme bei der Verwendung von dotenv einzudämmen. Schauen Sie sich die package.json an. Sie sollten einige neue Elemente in der devDependencies sehen.

    Sie sollten eine Ausgabe an das Terminal erwarten, die wie folgt aussieht:

    Server running at http://localhost:1234
    Built in 1.08s
    
  3. Drücken Sie Strg und klicken Sie auf den Link http://localhost:1234, um Ihren Browser zu öffnen.

  4. Wählen Sie in Ihrem Browser die Schaltfläche Anmelden aus.

    Das Dialogfeld Bei Ihrem Konto anmelden wird geöffnet.

  5. Wählen Sie im Dialogfeld Bei Ihrem Konto anmelden das Konto aus, das Zugriff auf Dataverse hat.

    Wenn Sie zum ersten Mal mit einem neuen Wert für die Anwendungs-ID (Client) zugreifen, wird dieses Dialogfeld Berechtigungen angefordert angezeigt:

    Berechtigungsanforderungsdialog

  6. Wählen Sie im Dialogfeld Berechtigungen angefordert die Option Annehmen aus.

  7. Wählen Sie die WhoAmI-Schaltfläche aus.

    Die Nachricht Herzlichen Glückwunsch! Sie haben eine Verbindung mit Dataverse mithilfe der Web-API hergestellt. wird mit Ihrem UserId-Wert aus dem komplexen Typ WhoAmIResponse angezeigt.

Problembehandlung

Dieser Abschnitt enthält Fehler, die bei der Ausführung dieses Schnellstarts auftreten können.

Anmerkung

Wenn beim Ausführen der Schritte in dieser Schnellstartanleitung Probleme auftreten, versuchen Sie, das Repository PowerApps-Beispiele zu klonen oder herunterzuladen. Die vollständige Anwendung für diese Schritte finden Sie unter /dataverse/webapi/JS/quickspa. Folgen Sie den Anweisungen in der Infodatei. Wenn das nicht funktioniert, erstellen Sie eine GitHub-Issue, die auf diese quickspa-Beispielanwendung verweist.

Ausgewähltes Benutzerkonto ist im Mandanten nicht vorhanden

Wenn das von Ihnen ausgewählte Konto nicht zum selben Microsoft Entra-Mandanten wie die registrierte Anwendung gehört, wird im Dialogfeld Konto auswählen die folgende Fehlermeldung angezeigt:

Selected user account does not exist in tenant '{Your tenant name}' and cannot access the application '{Your application ID}' in that tenant. The account needs to be added as an external user in the tenant first. Please use a different account.

Lösung: Stellen Sie sicher, dass Sie den richtigen Benutzenden auswählen.

Nächste Schritte,

Versuchen Sie es mit anderen Beispielen, in denen clientseitiges JavaScript verwendet wird.

Erfahren Sie mehr über Dataverse-Web-API-Funktionen durch Verständnis der Servicedokumente.