簡體   English   中英

使用 Microsoft Graph 創建日歷事件:ErrorAccessDenied

[英]Create calendar event using Microsoft Graph: ErrorAccessDenied

我一直在使用 curl 和 Outlook REST API v1.0(帶有基本身份驗證)在 Outlook 日歷中創建日歷事件。 基本身份驗證很快就會被棄用,所以我現在正在嘗試使用 OAuth 2 遷移到 Microsoft Graph v1.0。我已經取得了一些進展,但在運行 POST 以創建事件時被困在“ErrorAccessDenied”。 這是我到目前為止所做的:

  1. 在此處注冊我的應用程序(curl): https://apps.dev.microsoft.com/#/appList ,將應用程序權限設置為 Calendars.ReadWrite (並且,為了更好的衡量,還為 Calendars.ReadWrite 委派權限。)

  2. 使用上面第 1 步中的客戶端/應用程序 ID 和客戶端密碼/密碼,我可以使用以下命令獲取訪問令牌:

curl -X POST -k -d "grant_type=client_credentials&client_id=[ApplicationID]&client_secret=[密碼]&resource=https%3A%2F%2Fgraph.microsoft.com%2F" https://login.microsoftonline.com/[TenantID] /oauth2/令牌

  1. 然后我嘗試使用以下命令創建一個事件,但得到以下 ErrorAccessDenied 錯誤:

curl.exe -k -o "C:\\Temp\\output.txt" -X POST -H "Content-Type:application/json" -H "Authorization: Bearer [TOKEN]" -d @"C:\\Temp\\ eventDetails.json" https://graph.microsoft.com/v1.0/users/[UserPrincipalName]/calendars/[CalendarID]/events ?$select=Id,lastModifiedDateTime

{ "error": { "code": "ErrorAccessDenied", "message": "訪問被拒絕。檢查憑據並重試。", "innerError": { "request-id": "38b802b9-08b9-4e0b-8f91 -66ef56c459f8", "日期": "2018-10-17T01:08:22" } } }

除了將注冊的應用程序的應用程序權限設置為 Calendars.ReadWrite(上面的第 1 步)之外,我對如何允許訪問感到茫然。 任何幫助將不勝感激。

謝謝你。

對我有很大幫助的是使用 JWT 檢查網站檢查令牌,例如JWT.ms 本網站將向您解釋有關令牌的所有詳細信息(它由 Microsoft 構建,令牌僅由 javascript 解析而不會傳輸)。 該網站還有一個聲明選項卡,他們在其中解釋了令牌中的所有聲明。

您正在談論應用程序權限,這需要一個額外的步驟。 還必須獲得 Azure AD 管理員對要訪問的目錄的同意。

您可以將其構建到登錄流程中,但最簡單的方法是通過 Azure 門戶。

  1. 轉到https://portal.azure.com -> Azure Active Directory -> [AD 名稱] - 應用注冊
  2. 找到您要授予訪問權限的應用。
  3. 單擊設置
  4. 單擊所需權限
  5. 單擊授予權限

這樣做是在您的租戶中創建一個具有您請求的權限的應用程序帳戶。

在這些步驟之后,您應該創建一個新令牌並將其與您第一次獲得的令牌進行比較,您應該能夠看到更改。

暫無
暫無

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

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