Megosztás a következőn keresztül:


Oktatóanyag: A Microsoft Graph API meghívása egy egyoldalas React-alkalmazásból

Az egyoldalas alkalmazás (SPA) használata előtt api-hívást kell kezdeményeznünk a Microsoft Graphhoz, és létre kell hoznunk az alkalmazás felhasználói felületét (UI). A hozzáadás után bejelentkezhetünk az alkalmazásba, és lekérhetjük a profiladatok adatait a Microsoft Graph API-ból.

Ebben az oktatóanyagban:

  • API-hívás létrehozása a Microsoft Graphhoz
  • Felhasználói felület létrehozása az alkalmazáshoz
  • Összetevők importálása és használata az alkalmazásban
  • A felhasználó profiladatait megjelenítő összetevő létrehozása
  • Az API meghívása az alkalmazásból

Előfeltételek

API-hívás létrehozása a Microsoft Graphhoz

Ahhoz, hogy az SPA hozzáférést kérjen a Microsoft Graphhoz, hozzá kell adni az graphConfig objektumra mutató hivatkozást. Ez authConfig.js fájlban definiált Graph REST API-végpontot tartalmazza.

  • Az src mappában nyissa meg a graph.js, és cserélje le a fájl tartalmát a következő kódrészletre, hogy hozzáférést kérjen a Microsoft Graphhoz.

    import { graphConfig } from "./authConfig";
    
    /**
     * Attaches a given access token to a MS Graph API call. Returns information about the user
     * @param accessToken 
     */
    export async function callMsGraph(accessToken) {
        const headers = new Headers();
        const bearer = `Bearer ${accessToken}`;
    
        headers.append("Authorization", bearer);
    
        const options = {
            method: "GET",
            headers: headers
        };
    
        return fetch(graphConfig.graphMeEndpoint, options)
            .then(response => response.json())
            .catch(error => console.log(error));
    }
    

Az importálás frissítése az alkalmazás összetevőinek használatára

Az alábbi kódrészlet importálja a korábban létrehozott felhasználói felületi összetevőket az alkalmazásba. Emellett importálja a szükséges összetevőket a @azure/msal-react csomagból. Ezek az összetevők a felhasználói felület megjelenítésére és az API meghívására szolgálnak.

  • Az src mappában nyissa meg az App.jsx fájlt, és cserélje le a fájl tartalmát a következő kódrészletre a hozzáférés kéréséhez.

      import React, { useState } from 'react';
    
      import { PageLayout } from './components/PageLayout';
      import { loginRequest } from './authConfig';
      import { callMsGraph } from './graph';
      import { ProfileData } from './components/ProfileData';
    
      import { AuthenticatedTemplate, UnauthenticatedTemplate, useMsal } from '@azure/msal-react';
    
      import './App.css';
    
      import Button from 'react-bootstrap/Button';
    

A ProfileContent függvény hozzáadása

A ProfileContent függvény a felhasználó profiladatainak megjelenítésére szolgál, miután a felhasználó bejelentkezett. Ez a függvény akkor lesz meghívva, amikor a felhasználó kiválasztja a Profiladatok kérése gombot.

  • Az App.jsx fájlban adja hozzá a következő kódot az importálások alá:

    /**
    * Renders information about the signed-in user or a button to retrieve data about the user
    */
    const ProfileContent = () => {
        const { instance, accounts } = useMsal();
        const [graphData, setGraphData] = useState(null);
    
        function RequestProfileData() {
            // Silently acquires an access token which is then attached to a request for MS Graph data
            instance
                .acquireTokenSilent({
                    ...loginRequest,
                    account: accounts[0],
                })
                .then((response) => {
                    callMsGraph(response.accessToken).then((response) => setGraphData(response));
                });
        }
    
        return (
            <>
                <h5 className="card-title">Welcome {accounts[0].name}</h5>
                <br/>
                {graphData ? (
                    <ProfileData graphData={graphData} />
                ) : (
                    <Button variant="secondary" onClick={RequestProfileData}>
                        Request Profile Information
                    </Button>
                )}
            </>
        );
    };
    

A MainContent függvény hozzáadása

A MainContent függvény a felhasználó profiladatainak megjelenítésére szolgál, miután a felhasználó bejelentkezett. Ez a függvény akkor lesz meghívva, amikor a felhasználó kiválasztja a Profiladatok kérése gombot.

  • Az App.jsx fájlban cserélje le a függvényt App() a következő kódra:

    /**
    * If a user is authenticated the ProfileContent component above is rendered. Otherwise a message indicating a user is not authenticated is rendered.
    */
    const MainContent = () => {
        return (
            <div className="App">
                <AuthenticatedTemplate>
                    <ProfileContent />
                </AuthenticatedTemplate>
    
                <UnauthenticatedTemplate>
                    <h5>
                        <center>
                            Please sign-in to see your profile information.
                        </center>
                    </h5>
                </UnauthenticatedTemplate>
            </div>
        );
    };
    
    export default function App() {
        return (
            <PageLayout>
                <center>
                    <MainContent />
                </center>
            </PageLayout>
        );
    }
    

A Microsoft Graph API meghívása az alkalmazásból

Az összes szükséges kódrészlet hozzá lett adva, így az alkalmazás mostantól meghívható és tesztelhető egy webböngészőben.

  1. Lépjen a korábban megnyitott böngészőre az oktatóanyagban : Alkalmazás előkészítése hitelesítéshez. Ha a böngésző bezárult, nyisson meg egy új ablakot a címmel http://localhost:3000/.

  2. Válassza a Bejelentkezés gombot. Az oktatóanyag alkalmazásában válassza a Bejelentkezés előugró ablak használatával lehetőséget.

    Képernyőkép a React Alkalmazás bejelentkezési ablakáról.

  3. Miután megjelenik az előugró ablak a bejelentkezési beállításokkal, válassza ki azt a fiókot, amellyel be szeretne jelentkezni.

    Képernyőkép, amely arra kéri a felhasználót, hogy válassza ki a Microsoft-fiókot a bejelentkezéshez.

  4. Egy második ablak jelenhet meg, amely azt jelzi, hogy a rendszer egy kódot küld az e-mail-címre. Ha ez történik, válassza a Kód küldése lehetőséget. Nyissa meg a küldő Microsoft-fiók csapatától kapott e-mailt, és adja meg a 7 számjegyű egyszer használatos kódot. Miután beírta, válassza a Bejelentkezés lehetőséget.

    Képernyőkép, amely arra kéri a felhasználót, hogy adjon meg ellenőrző kódot a bejelentkezéshez.

  5. Ha be van jelentkezve, válassza a Nem vagy az Igen lehetőséget.

    Képernyőkép, amely arra kéri a felhasználót, hogy döntse el, hogy bejelentkezve marad-e.

  6. Az alkalmazás most engedélyt kér a bejelentkezéshez és az adatok eléréséhez. A folytatáshoz válassza az Elfogadás lehetőséget.

    Képernyőkép, amely arra kéri a felhasználót, hogy engedélyezze az alkalmazás számára az engedélyek elérését.

  7. A SPA ekkor megjelenik egy gomb, amely a Profiladatok kérése gombra mutat. Válassza ki a Microsoft Graph API-ból beszerzett Microsoft Graph-profiladatok megjelenítéséhez.

    Képernyőkép a React Alkalmazásról, amely az API-hívás eredményeit ábrázolja.

Következő lépések

Megtudhatja, hogyan használhatja a Microsoft Identitásplatform a webes API-k készítéséről szóló alábbi oktatóanyag-sorozattal.