извините за несколько сообщений, я не могу получить запрос на публикацию в Microsoft Graph, я следую за документацией , я пытаюсь создать событие в
https://graph.microsoft.com/beta/myDomain/users/myEmail/calendar/events
У меня есть функция и несколько вспомогательных классов для создания объекта json, например:
List<ToOutlookCalendar> toOutlook = new List<ToOutlookCalendar>();
toOutlook.Add(new ToOutlookCalendar
{
Start = new End
{
DateTime = DateTimeOffset.UtcNow,
TimeZone = "Pacific Standard Time"
},
End = new End
{
DateTime = DateTimeOffset.UtcNow,
TimeZone = "Pacific Standard Time"
},
Body = new Body
{
ContentType = "HTML",
Content = "testar for att se skit"
},
Subject = "testin",
Attendees = new List<Attendee>
{
new Attendee
{
EmailAddress = new EmailAddress
{
Address = "myEmail",
Name = "name"
},
Type = "Required"
}
},
Token = tokenn
});
return new JsonResult
{
Data = toOutlook
};
ранее я писал на: https://outlook.office.com/api/v2.0/myDomain/users/myEmail/calendar/events
, который дал мне ошибку 401, жалуясь на то, что токен относится к неделе. Я создал сертификат x509, но мне не повезло найти способ загрузить его в свой каталог в Azure, и, поскольку я хочу сделать все программно и до сих пор добился успеха, решил использовать другой подход и снова наткнулся на документацию Microsoft Graph.
Я получаю события календаря после авторизации разрешений приложения для Calendars.ReadWrite: https://graph.microsoft.com/beta/myDomain/users/myEmail/calendar/events.
Во всяком случае, мой запрос выглядит следующим образом и дает мне 400 плохих запросов:
htttpclient.DefaultRequestHeaders.Add("Authorization", "Bearer " + tokenn);
htttpclient.DefaultRequestHeaders.Add("Host", "graph.microsoft.com");
htttpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var stringPayload = await Task.Run(() => JsonConvert.SerializeObject(res));
var response = await htttpclient.PostAsync($"https://graph.microsoft.com/beta/{myDomain}/users/{myEmail}/calendar/events",
new StringContent(stringPayload, Encoding.UTF8, "application/json"));
Кто-нибудь знает, почему? Я следую за документацией к письму, которому я верю, но все еще получаю 400 плохих запросов.
Редактировать 1
Я использую эти классы для создания события на основе документации
public class ToOutlookCalendar
{
[JsonProperty("Subject")]
public string Subject { get; set; }
[JsonProperty("Body")]
public Body Body { get; set; }
[JsonProperty("Start")]
public End Start { get; set; }
[JsonProperty("End")]
public End End { get; set; }
[JsonProperty("Attendees")]
public List<Attendee> Attendees { get; set; }
}
public class Attendee
{
[JsonProperty("EmailAddress")]
public EmailAddress EmailAddress { get; set; }
[JsonProperty("Type")]
public string Type { get; set; }
}
public class EmailAddress
{
[JsonProperty("Address")]
public string Address { get; set; }
[JsonProperty("Name")]
public string Name { get; set; }
}
public class Body
{
[JsonProperty("ContentType")]
public string ContentType { get; set; }
[JsonProperty("Content")]
public string Content { get; set; }
}
public class End
{
[JsonProperty("DateTime")]
public DateTimeOffset DateTime { get; set; }
[JsonProperty("TimeZone")]
public string TimeZone { get; set; }
}
Любая помощь приветствуется !!