我們已經成功使用Sharepoint REST API從列表中檢索項目一段時間了,但最近決定集成ADAL.JS以便能夠訪問其他Microsoft API,例如Graph,Azure AD等。對Sharepoint REST API的CAML查詢會導致「無效的受衆URI」?
成功認證後Adal.js自動添加一個
Authorization: Bearer eyJ..
頭的REST調用與權限擺弄了一下後,工作正常。該應用程序是在Sharepoint中託管的Angular SPA,因此此標頭不是必需的,但無關緊要。然而,我們的一些REST調用要求我們也查詢分類,並且在正常的Sharepoint REST API中不支持,所以我們必須打擊(/ _api/web/lists/GetByTitle('ListName 「)/GetItems終點)與CAML查詢的請求負載即https://mydomain.sharepoint.com/sites/dev/_api/web/lists/GetByTitle('News')/GetItems
可惜的是,這是行不通的API僅僅返回 Invalid audience Uri '5exx5cef-x7xx-4xxx-axxx-4xxxx2e40'.
到目前爲止,我唯一的解決辦法是修改實際Adal.JS庫刪除此此特定端點的標頭。
所以,我的問題是 - 有沒有人使用Adal.JS完成對Sharepoint REST API的CAML查詢,或遇到類似的問題,並可以提供任何見解?
我懷疑這是一個配置問題,但在某種程度上損失了什麼。
Jeffrey,謝謝你的回覆。不幸的是,這並不能回答我的問題。查詢SP列表和圖表正常工作。 問題是我不能用CAML查詢來打擊/ GetItems端點,這也是查詢Sharepoint分類法所必需的(對於正常端點不可能)。 那麼,ADAL和CAML查詢,有什麼建議? –
@Jonas,在這種情況下,您需要將端點'https://mydomain.sharepoint.com'設置爲空,我已經更新了我的答案。 –
更接近!這從我的其他SP請求(真棒,無法找到如何做到這一點)刪除授權頭。儘管如此,仍然將它添加到/ GetItems端點,但無法弄清楚原因,但它是一個POST請求?手動刪除授權標頭在這裏有效。 評論後工作的示例(無授權): https://my-own-domain.sharepoint.com/sites/dev/_api/web/lists/getByTitle('generalinformation')/items?$select=標題,jyfo 不工作(授權標題仍然存在,OP中出錯): https://my-own-domain.sharepoint.com/sites/dev/_api/web/lists/GetByTitle('News')/GetItems –