如何为我的 spfx Web 部件设置活动帐户

问题描述 投票:0回答:1

我正在使用react构建一个spfx webpart,以使用microsoft graph api获取我的组织中的用户数据,下面是我的代码,在进行调用并检查开发控制台后,我收到此错误

获取用户数据时出错:错误:没有用户帐户

我的代码:

 public getEmp = async (): Promise<void> => {
    try {
      const accounts = msalInstance.getAllAccounts();
      if (accounts.length === 0) {
        throw new Error("No user account found");
      }
      const activeAccount = accounts[0];
      const request = {
        scopes: ["User.Read"],
        account: activeAccount,
      };
      // msalInstance.setActiveAccount(msalInstance.getActiveAccount());
      const response: AuthenticationResult =
        await msalInstance.acquireTokenSilent(request);

      const accessToken: string = response.accessToken;
      const graphApiResponse = await axios.get(
        "https://graph.microsoft.com/v1.0/users",
        {
          headers: {
            Authorization: `Bearer ${accessToken}`,
          },
        }
      );
      if (graphApiResponse.status !== 200) {
        throw new Error(
          `Graph API request failed: ${graphApiResponse.statusText}`
        );
      }
      const userData = await graphApiResponse.data;

      console.log("User data:", userData);
    } catch (error) {
      console.error("Error fetching user data:", error);
    }
  };

请问我做错了什么?如果还有其他方法,请告诉我。

获取我的组织数据中的所有用户

axios microsoft-graph-api azure-ad-msal web-parts spfx
1个回答
0
投票

我遇到了同样的问题,我的问题已通过以下代码解决。

 const loginRequest = {
        scopes: ["User.Read"]
      };
if (accounts.length === 0) {
        await msalInstance.ssoSilent(loginRequest);
      }
© www.soinside.com 2019 - 2024. All rights reserved.