microsoft-graph-client 在 API 调用时抛出“#<GraphError>”错误
microsoft-graph-client throws '#<GraphError>' error on API call
我想从我的节点后端使用图表 API。首先,我通过调用 acquireTokenWithClientCredentials
方法从 adal-node 获取访问令牌。所以我的象征性回应是
我安装 @microsoft/microsoft-graph-client package and tried to follow the guide from here https://github.com/microsoftgraph/msgraph-sdk-javascript/blob/dev/samples/node/main.js . For the isomorphic-fetch
import I installed the isomorphic-fetch 包。
async function bootstrap() {
// ...
const session: TokenResponse = await authenticationService.getSession(); // call the 'acquireTokenWithClientCredentials' function
const client: Client = Client.init({
authProvider: (done) => {
done(null, session.accessToken);
},
});
try {
await client.api('/me').get();
} catch (error) {
throw error;
}
}
API 调用抛出异常。但我不知道出了什么问题,因为错误只记录
(node:20561) UnhandledPromiseRejectionWarning: #<GraphError>
有什么错误或缺失?如果您需要更多信息,请告诉我。但我希望我的描述足以复制 :) 在此先感谢。
更新
该应用程序未以用户身份登录,应 运行 作为后台服务。所以也许我无法访问 /me
因为应用程序不是用户。但是当我将 /me
更新为 /users
(这个端点应该可以工作)时,我仍然得到同样的错误。
所以我访问/users
时的当前访问令牌是
您不能改用 Client credential flow to get access token for /me
endpoint. You should use auth code flow(acquireTokenWithAuthorizationCode
)。然后您可以为登录用户调用/me
。
如果您必须使用客户端凭据流,您应该为特定用户调用 /users/{id | userPrincipalName}
。
此外,如果你想调用Microsoft Graph API,你用来获取访问令牌的资源的值应该是https://graph.microsoft.com
。
var resource = 'https://graph.microsoft.com';
我想从我的节点后端使用图表 API。首先,我通过调用 acquireTokenWithClientCredentials
方法从 adal-node 获取访问令牌。所以我的象征性回应是
我安装 @microsoft/microsoft-graph-client package and tried to follow the guide from here https://github.com/microsoftgraph/msgraph-sdk-javascript/blob/dev/samples/node/main.js . For the isomorphic-fetch
import I installed the isomorphic-fetch 包。
async function bootstrap() {
// ...
const session: TokenResponse = await authenticationService.getSession(); // call the 'acquireTokenWithClientCredentials' function
const client: Client = Client.init({
authProvider: (done) => {
done(null, session.accessToken);
},
});
try {
await client.api('/me').get();
} catch (error) {
throw error;
}
}
API 调用抛出异常。但我不知道出了什么问题,因为错误只记录
(node:20561) UnhandledPromiseRejectionWarning: #<GraphError>
有什么错误或缺失?如果您需要更多信息,请告诉我。但我希望我的描述足以复制 :) 在此先感谢。
更新
该应用程序未以用户身份登录,应 运行 作为后台服务。所以也许我无法访问 /me
因为应用程序不是用户。但是当我将 /me
更新为 /users
(这个端点应该可以工作)时,我仍然得到同样的错误。
所以我访问/users
时的当前访问令牌是
您不能改用 Client credential flow to get access token for /me
endpoint. You should use auth code flow(acquireTokenWithAuthorizationCode
)。然后您可以为登录用户调用/me
。
如果您必须使用客户端凭据流,您应该为特定用户调用 /users/{id | userPrincipalName}
。
此外,如果你想调用Microsoft Graph API,你用来获取访问令牌的资源的值应该是https://graph.microsoft.com
。
var resource = 'https://graph.microsoft.com';