我试图通过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创建这样的类别?
答案 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
集合中进行分配。