我正在使用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);
}
};
请问我做错了什么?如果还有其他方法,请告诉我。
获取我的组织数据中的所有用户
我遇到了同样的问题,我的问题已通过以下代码解决。
const loginRequest = {
scopes: ["User.Read"]
};
if (accounts.length === 0) {
await msalInstance.ssoSilent(loginRequest);
}