[英]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.