簡體   English   中英

使用 C# 和 Microsoft Graph SDK 從日歷中獲取事件

[英]Getting Events from Calendar using C# and Microsoft Graph SDK

我正在嘗試開發一個控制台應用程序來列出、刪除和添加事件到特定用戶的日歷。 我正在開發一個業務流程。 我首先列出事件。

Calendar cal =
    client
    .Users["UserName@CompanyName.com"]
    .Calendars["AAMkAGIzZDM4O...."]
    .Request()
    .GetAsync()
    .Result;

我得到了正確的日歷,但 Events 集合為空。 日歷中有 13 個事件。 我有日歷讀/寫權限。

有任何想法嗎?

我沒有測試 c# Graph SDK 的環境,但我懷疑底層查詢不會向 Graph 詢問日歷事件,因此該字段為空。

使用 Graph explorer ( https://developer.microsoft.com/en-us/graph/graph-explorer# ),我們可以嘗試一個等效的查詢,並注意只返回有關日歷的元數據。

GET https://graph.microsoft.com/v1.0/me/calendars

在此處輸入圖片說明

圖形資源管理器有一些日歷示例查詢。 默認情況下,它們可能不可見,因此請單擊“顯示更多示例”鏈接。

在此處輸入圖片說明

all events in my calendar示例查詢中的all events in my calendar可能就是您要查找的內容。 請求是:

GET https://graph.microsoft.com/v1.0/me/events?$select=subject,body,bodyPreview,organizer,attendees,start,end,location

(或 /calendars/{calendar-id}/events 如果您想要特定日歷的事件)

下一步是將此 REST API 查詢轉換為 SDK 語法以在您的應用程序中使用。

這個示例開始,起點是:

IUserEventsCollectionPage events = await graphClient.Me.Events.Request().GetAsync();

除了查詢事件之外,您可能還想查看查詢用戶日歷視圖,它允許您指定開始和結束日期。

這里值得注意的是Calendars["..."].Events只會給你事件主人。

另一種方法是使用Calendars["..."].CalendarView和“startDateTime”和“endDateTime”的查詢選項,這將為您提供該時間范圍內的所有事件實例。

丹,謝謝你的帖子。 看了你的帖子,我意識到了我的錯誤。 這是有效的代碼:

            string userEmail = "UserName@CompanyName.com";
            string calId = "AAMkAGIzZDM4OWI0LWN...….";

            ICalendarEventsCollectionPage events = client.Users[$"{userEmail}"]
                .Calendars[$"{calId}"]
                .Events.Request().GetAsync().Result;

暫無
暫無

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

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