我停留在如何获得其他用户的Outlook日历的访问?
在这种情况下,您可以考虑使用应用程序权限。
在Azure的AD:
- 登记在Azure的AD Web应用程序。
- 添加“在所有邮箱读写日历”权限
- 生成应用秘密密钥
在您的应用程序,调用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。
它不需要每个用户登录?我打算在Windows服务应用程序中使用它,我可以访问所有用户的日历,而无需登录。我将使用管理员帐户访问所有...有没有办法做到这一点? – cdp
顺便说一句我没有看到一个选项来读取和写入所有邮箱日历 – cdp