簡體   English   中英

Microsoft Graph API 嘗試使用 $expand(microsoft.graph.itemattachment/item) 讀取 ItemAttachment 屬性時“訪問被拒絕”

[英]Microsoft Graph API “Access is denied” while trying to read the ItemAttachment Properties with $expand(microsoft.graph.itemattachment/item)

我正在嘗試檢索消息類型的 ItemAttachment 的屬性。 我已授予所有必需的權限並且能夠接收 ItemAttachment 屬性。 但是當我使用 $expand 來獲取 ItemAttachment 消息的更多屬性時。 我收到拒絕訪問錯誤。

對於我所讀到的內容,它說您需要Mail.read權限,我已經為我的 Azure AD 應用程序提供了 Graph API 並且我能夠獲取所有消息,但只有當我嘗試使用 $expand 獲取屬性時消息類型的 ItemAttachment 我被拒絕訪問。

我找不到與在 microsoft doc 上工作可能需要的特定權限相關的任何內容( https://docs.microsoft.com/en-us/graph/api/attachment-get?view=graph-休息-1.0&tabs=java )。

我還提到了一個類似的帖子( 如何通過 Microsoft Graph API 檢索 itemAttachment 的內容)並且也沒有找到任何東西。

以下是詳細信息:

Java 代碼:

graphClient.me().messages(messageId).attachments(attachmentId)
                .buildRequest()
                .expand("microsoft.graph.itemattachment/item")
                .get();

這會生成一個 REST 調用,如下所示:

GET https://graph.microsoft.com/v1.0/me/messages/A2zjArAAA=/attachments/5AlfysT-Cz27w=?$expand=microsoft.graph.itemattachment/item

但是我遇到了“拒絕訪問”錯誤。

403 : Forbidden
Cache-Control : private
Content-Length : 101
Content-Type : application/json; odata.metadata=minimal; odata.streaming=true; IEEE754Compatible=false; charset=utf-8
{
  "error": {
    "code": "ErrorAccessDenied",
    "message": "Access is denied. Check credentials and try again."
  }
}

我的應用程序 Azure Active Directory 應用程序具有以下權限: 在此處輸入圖像描述

我正在使用的 microsoft graph API SdkVersion 是:graph-java/v2.3.1。

我不確定我是否在這里遺漏了什么。 感謝是否有人可以指導我解決這個問題。

正如 Shiva 在評論中提到的,您在代碼中使用graphClient.me() ,但您分配了“ Application ”類型的Mail.Read權限。 如果分配“應用程序”類型的權限,它只需要client_idscopeclient_secretgrant_type來獲取訪問令牌。 因此訪問令牌不包含用戶信息,廣告不知道me是誰,因此無法識別代碼graphClient.me()

如果你想運行代碼( graphClient.me()... )成功,你需要添加權限Mail.Read在“ Delegated ”類型而不是“ Application ”類型(按照下面截圖中的步驟,也不要忘記請授予管理員同意)。 在此處輸入圖像描述

當您使用應用程序權限時,它就像您有一個守護程序應用程序一樣,您用於守護程序應用程序的流程將產生 App 令牌。 這無法識別/me ,因為這里沒有用戶。 所以嘗試使用/users/{userid}/messages

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM