通过Microsoft Graph API创建主类别

时间:2016-12-02 14:17:57

标签: c# api outlook microsoft-graph

我试图通过outlook的事件创建一个新类别。以下是我到目前为止的情况。

  using (var client = new HttpClient())
            {
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", AdviserBearerToken);
                client.DefaultRequestHeaders.Accep.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                var categoryName = new List<string>();
                categoryName.Add("New Event");

                var startTime = new Time();
                var endTime = new Time();
                startTime.DateTime = "2016-07-15T15:00:00.0000000";
                startTime.TimeZone = "UTC";
                endTime.DateTime = "2016-07-15T15:30:00.0000000";
                endTime.TimeZone = "UTC";

                var eventModel = new EventModelForGraph
                {
                    categories = categoryName,
                    subject = "This is an event",
                    Start = startTime,
                    End = endTime

                };
                var serializedObject = JsonConvert.SerializeObject(eventModel);
                var createBody = new StringContent(serializedObject, System.Text.Encoding.UTF8, "application/json");
                var response = await client.PostAsync("https://graph.microsoft.com/v1.0/me/calendar/events", createBody);

                var responseString = await response.Content.ReadAsStringAsync();
            }

事件显示在日历中,而类别显示为标题,但未列在“分类”标签下,这引出了我的问题。 是否可以使用API​​创建这样的类别?

2 个答案:

答案 0 :(得分:0)

不,您无法通过REST API将类别添加到主类别列表中。您无法通过任何API直接添加它们。

但是,如果您愿意直接操作XML,则可以修改列表。血腥细节记录在MS-OXOCFG中。例如,您可以使用EWS访问配置项。

这将是添加到REST API的一个很棒的功能。您应该在UserVoice上建议。

答案 1 :(得分:0)

我知道这是一个较老的问题,但我正在研究同样的事情,并认为我会发布更新。现在,使用当前版本的Graph API可以实现这一点。您可以在MSDN中查看文档here。您可以通过发送POST API请求来创建类别:

POST https://graph.microsoft.com/beta/me/outlook/masterCategories
Content-type: application/json
Content-Length: 70

{
      "displayName":"Project expenses",
      "color":"preset9"
}

创建类别后,您可以在创建活动时通过将类别的displayName属性添加到项目的categories集合中进行分配。

您可以找到有关何时添加这些API端点的更多详细信息here以及有关类别here的更多详细信息。