2016-03-08 40 views

回答

0

我停留在如何获得其他用户的Outlook日历的访问?

在这种情况下,您可以考虑使用应用程序权限。

在Azure的AD:

  1. 登记在Azure的AD Web应用程序。
  2. 添加“在所有邮箱读写日历”权限 enter image description here
  3. 生成应用秘密密钥

在您的应用程序,调用Office 365的图形API - 创建通过使用应用程序令牌的事件。

http://graph.microsoft.io/en-us/docs/api-reference/v1.0/api/user_post_events

 var tmgr = new ApplicationTokenManagement(); 

     var token = tmgr.AcquireToken(Settings.ResourceUrlOfGraph); 

     var api = new Graph.GraphCalendarAPI(token); 

     JObject body = new JObject 
     { 
      {"subject", "Create from Office 365 API"}, 
      {"start", new JObject { { "DateTime", "2016-03-09T00:00:00"}, { "TimeZone", "China Standard Time" } } }, 
      {"end", new JObject { { "DateTime", "2016-03-10T00:00:00"}, { "TimeZone", "China Standard Time" } } }, 
      {"isAllDay", true } 
     }; 

     var task = api.CreateEventAsync(body, "[email protected]"); 

     task.Wait(); 

你可以找到完整的示例here

+0

它不需要每个用户登录?我打算在Windows服务应用程序中使用它,我可以访问所有用户的日历,而无需登录。我将使用管理员帐户访问所有...有没有办法做到这一点? – cdp

+0

顺便说一句我没有看到一个选项来读取和写入所有邮箱日历 – cdp

相关问题