问题描述
我能够通过MSAL进行身份验证,并在Listview中检索日历的事件
但是这不是我想要的,是否可以从Outlook中列出整个日历?
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var calendar = await graphClient.Me.Calendar
.Request()
.GetAsync();
var queryOptions = new List<QueryOption>()
{
new QueryOption("startDateTime","2017-01-01T19:00:00-08:00"),new QueryOption("endDateTime","2017-01-07T19:00:00-08:00")
};
var calendarView = await graphClient.Me.Calendar.CalendarView
.Request( queryOptions )
.GetAsync();
我可以假设我需要创建自己的布局/日历来存储事件吗?
我是C#的新用户,所以请裸露自己。
解决方法
Microsoft Graph API确保应用程序可以与Outlook.com(Microsoft帐户)或Office 365(企业帐户)进行通信。因此,您可以在“代码隐藏”中调用以下代码。
var client = new GraphServiceClient("https://graph.microsoft.com/v1.0",new DelegateAuthenticationProvider(
async (requestMessage) =>
{
var tokenRequest = await App.IdentityClientApp.AcquireTokenSilentAsync(App.Scopes,App.IdentityClientApp.Users.FirstOrDefault());
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer",tokenRequest.AccessToken);
}));
var events = await client.Me.Events.Request().GetAsync();
var list = events.ToList();
YourListView.ItemsSource = list.Take(5);
这里有一个完整的blog,也许可以为您提供帮助。