我想在Javascript中提取我的任務並添加新的任務,但我們將重點放在提取任務上。使用Microsoft圖形提取任務時未經授權
我做了一個應用程序,並使用msal.js文件來獲取令牌。我得到提示,允許應用程序從我的賬戶讀取/寫入,彈出窗口關閉,我已經獲得了一個令牌!
到目前爲止這麼好,但是當我嘗試獲取我的任務時,API響應「未授權」。當我查看標題時,我可以看到我沿着「持票人[標記]」發送。
我完全無法知道如何獲得我的任務,因爲我確實得到了一個合適的令牌,並且我遵循了引導式設置以確保我沿着令牌發送消息。
在我的應用程序(我在https://apps.dev.microsoft.com上創建的)中,我已經設置了所有與任務相關的權限和User.read以獲得較好的度量。至於我設置了「Web」的平臺。
我的init方法:
const self = this
this.userAgentApplication = new Msal.UserAgentApplication(this.clientID, null, function (errorDes, token, error, tokenType) {
// this callback is called after loginRedirect OR acquireTokenRedirect (not used for loginPopup/aquireTokenPopup)
})
this.userAgentApplication.loginPopup(['Tasks.readwrite']).then(function (token) {
let user = self.userAgentApplication.getUser()
if (user) {
self.token = token
localStorage.setItem('token', token)
self.getTasks()
}
}, function (error) {
console.log(error)
})
我getTasks方法:
const bearer = 'Bearer ' + this.token
let headers = new Headers()
headers.append('Authorization', bearer)
let options = {
method: 'GET',
headers: headers
}
// Note that fetch API is not available in all browsers
fetch('https://outlook.office.com/api/v2.0/me/tasks', options).then(function (response) {
let contentType = response.headers.get('content-type')
if (response.status === 200 && contentType && contentType.indexOf('application/json') !== -1) {
response.json().then(function (data) {
console.log(data)
})
.catch(function (error) {
console.log(error)
})
} else {
response.json().then(function (data) {
console.log(data)
})
.catch(function (error) {
console.log(error)
})
}
})
.catch(function (error) {
console.log(error)
})
感謝您的回覆!它似乎沒有任何改變,可悲的是:( 其中一個響應頭是'x-ms-diagnostics:2000001; reason =「令牌類型未知。」; error_category =「invalid_token」' – CaptainCarl
您可能會解析你的令牌像https://jwt.io,看看它是否有效 –
現在工作,明顯犯了一個錯字。非常感謝! – CaptainCarl