我可以使用Outlook API从Outlook中显示日历吗? Xamarin表格

问题描述

我能够通过MSAL进行身份验证,并在Listview中检索日历的事件

但是这不是我想要的,是否可以从Outlook中列出整个日历?

enter image description here

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,也许可以为您提供帮助。