我建立一個使用微軟圖形API的內部會議室應用程序,我想用一個架構擴展擴展事件對象。微軟圖形,註冊一個架構擴展
文檔:
但是運行查詢時註冊一個新的架構擴展,我收到這個HTTP響應:
{
"url": "https://graph.microsoft.com/beta/schemaExtensions",
"status": "403 Forbidden",
"headers": {
"request-id": "e1e36210-6c4c-4ed8-afb1-c9ee6f6362ed",
"client-request-id": "e1e36210-6c4c-4ed8-afb1-c9ee6f6362ed",
"x-ms-ags-diagnostic": "{\"ServerInfo\":{\"DataCenter\":\"North Europe\",\"Slice\":\"SliceA\",\"ScaleUnit\":\"001\",\"Host\":\"AGSFE_IN_2\",\"ADSiteName\":\"DUB\"}}",
"duration": "742.4624"
},
"body": {
"error": {
"code": "Authorization_RequestDenied",
"message": "Insufficient privileges to complete the operation.",
"innerError": {
"request-id": "e1e36210-6c4c-4ed8-afb1-c9ee6f6362ed",
"date": "2017-05-10T10:05:37"
}
}
}
}
我可以確認我的申請有預先必要的範圍權限爲Directory.AccessAsUser.All
,並且在添加此權限後也已超過16小時。我也有驗證的域,所以命名空間應該是正確的每個文檔的參考。在代碼
我的API查詢:
Outlook.test({
version: 'beta',
resource: 'schemaExtensions',
method: 'POST',
body: {
id: 'thehivegroup_beethere',
description: 'Extension for event presence status',
targetTypes: [ 'Event' ],
properties: [
{ name: 'checkIn', type: 'String' },
{ name: 'checkOut', type: 'String' }
]
}
})
.then(result => console.log(result), err => console.error(err))
導致與JSON一個POST在身體和頭與授權令牌編碼到URL https://graph.microsoft.com/beta/schemaExtensions
。
我已經嘗試了不同的ID,如beethere
,這導致命名空間錯誤,所以我知道這應該工作正常。
有沒有其他範圍的權限,我意識到我需要啓用在這裏。這個錯誤太模糊了,我不知道什麼特權在這裏是不夠的。
編輯:有手動運行在Graph Explorer查詢作爲承租人的管理,增加了對API所需的範圍權限,並在情況下,一些額外的,但對於架構擴展的註冊查詢仍不起作用,與應用程序收到相同的錯誤信息。所以這絕對不是我的代碼中的問題,而是Microsoft Graph API。有沒有聯繫方式或方法要求微軟研究這個問題?
謝謝,這解釋了委派權限工作方式中的細微差別。 希望看到圖形瀏覽器能夠處理委派的權限。 或者,可以通過REST /圖形API來註冊和管理模式擴展。考慮到管理模式擴展的難度,不得不爲每個應用程序的模式擴展構建大量的代碼和邏輯以及整個管理用戶界面,這看起來非常重要。這可以以某種方式在Azure門戶中進行管理,或者有一個用於管理模式擴展的單用途應用程序?一旦架構是GA,它可以重用 –
Sure Nexii。請在UserVoice中爲UI添加請求(在應用註冊或其他體驗中):https://officespdev.uservoice.com/forums/224641-feature-requests-and-feedback/category/101632-microsoft-graph-o365 -rest的API。我們應該儘快修復使用Graph Explorer的能力。 –
想要添加,在修復之前,您可以在Graph Explorer中創建/管理架構擴展定義,您可以使用Postman來執行這些操作(您需要使用AAD v2端點來獲取Microsoft Graph的訪問令牌) –