Angular 5 - Microsoft Graph - 为 OneNote 请求资源时出现错误 401
Angular 5 - Microsoft Graph - Error 401 while requesting resource for OneNote
我在从 Microsoft graph 请求资源时遇到问题(对于 OneNote API)。我不确定我是否正确获取访问令牌。我使用隐式流,因为它用于 Angular 5 前端应用程序。
根据https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-implicit用url获得的令牌:
window.location.href = 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize?'
+ 'client_id=' + CLIENT_ID
+ '&response_type=token'
+ '&redirect_uri=' + REDIRECT_URI
+ '&scope=' + SCOPE
+ '&response_mode=fragment';
根据文档,我也在使用范围 'Notes.ReadWrite.All',它似乎工作正常,因为我在登录后获得令牌。
这是我尝试请求笔记本的方式:
const headers = new HttpHeaders({
'Content-type': 'application/json; ' + 'charset=utf-8',
'Authorization': 'Bearer ' + ACCESS_TOKEN,
});
this.http.get('https://graph.microsoft.com/v2.0/me/onenote/notebooks', {headers: headers}).subscribe(
data => console.log(data),
err => console.log(err)
);
但我总是以错误告终:
status: 401,
statusText: "Unauthorized"
code: "InvalidAuthenticationToken",
message: "CompactToken parsing failed with error code: 80049403"
感觉是解析令牌有问题,或者令牌根本不正确。在此先感谢您的帮助。
传统上,我使用 2 个调用来完成此操作。第一次通话
https://login.microsoftonline.com/common/oauth2/v2.0/authorize
returns code 然后您可以使用它来进一步请求访问令牌。
所以在这个初始授权之后 - 我使用了以下端点来请求访问令牌:
https://login.microsoftonline.com/common/oauth2/v2.0/token
同时提供授权后收到的原始代码以及该请求。作为对此的回应,您将收到实际的访问令牌(以及令牌到期后使用的刷新令牌)。您可以进一步将其用于您的实际数据请求(有效期为 60 分钟)。
我在从 Microsoft graph 请求资源时遇到问题(对于 OneNote API)。我不确定我是否正确获取访问令牌。我使用隐式流,因为它用于 Angular 5 前端应用程序。
根据https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-implicit用url获得的令牌:
window.location.href = 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize?'
+ 'client_id=' + CLIENT_ID
+ '&response_type=token'
+ '&redirect_uri=' + REDIRECT_URI
+ '&scope=' + SCOPE
+ '&response_mode=fragment';
根据文档,我也在使用范围 'Notes.ReadWrite.All',它似乎工作正常,因为我在登录后获得令牌。
这是我尝试请求笔记本的方式:
const headers = new HttpHeaders({
'Content-type': 'application/json; ' + 'charset=utf-8',
'Authorization': 'Bearer ' + ACCESS_TOKEN,
});
this.http.get('https://graph.microsoft.com/v2.0/me/onenote/notebooks', {headers: headers}).subscribe(
data => console.log(data),
err => console.log(err)
);
但我总是以错误告终:
status: 401,
statusText: "Unauthorized"
code: "InvalidAuthenticationToken",
message: "CompactToken parsing failed with error code: 80049403"
感觉是解析令牌有问题,或者令牌根本不正确。在此先感谢您的帮助。
传统上,我使用 2 个调用来完成此操作。第一次通话
https://login.microsoftonline.com/common/oauth2/v2.0/authorize
returns code 然后您可以使用它来进一步请求访问令牌。
所以在这个初始授权之后 - 我使用了以下端点来请求访问令牌:
https://login.microsoftonline.com/common/oauth2/v2.0/token
同时提供授权后收到的原始代码以及该请求。作为对此的回应,您将收到实际的访问令牌(以及令牌到期后使用的刷新令牌)。您可以进一步将其用于您的实际数据请求(有效期为 60 分钟)。