Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# O365使用REST API创建事件_C#_Rest_Office365 - Fatal编程技术网

C# O365使用REST API创建事件

C# O365使用REST API创建事件,c#,rest,office365,C#,Rest,Office365,我正在尝试调用此代码 string accessToken = @".."; //valid token with right scopes public string EventsUrl = @"https://outlook.office.com/api/v2.0/me/events"; // generate body var postBody = JsonBody(invite); using (var client = new HttpClient()) {

我正在尝试调用此代码

 string accessToken = @".."; //valid token with right scopes
 public string EventsUrl = @"https://outlook.office.com/api/v2.0/me/events";

 // generate body
 var postBody = JsonBody(invite);

 using (var client = new HttpClient())
 {
       using (var request = new HttpRequestMessage(HttpMethod.Post, EventsUrl))
        {
             request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
             var content = new StringContent(postBody, Encoding.UTF8, "application/json");

             request.Content = content;

             var response = await client.SendAsync(request);
             return (response.IsSuccessStatusCode);
         }
 }
创建JsonBody的方法是

public string JsonBody(User user, Session session){

        var invite = new EventInvite
        {
            Attendees = new Attendee[1]
        };

        invite.Attendees[0] = new Attendee
        {
            Type = "Required",
            EmailAddress = new Emailaddress { Name = user.GetName(), Address = user.GetEmail() }
        };
        invite.Start = new Start { DateTime = session.DateTime_Start };
        invite.End = new End { DateTime = session.DateTime_Start.AddMinutes(15) };
        invite.Subject = session.Name;
        invite.Body = new Body { ContentType = "HTML", Content = $"Some Content" };

        return JsonConvert.SerializeObject(eventInvite);

  } 
我收到了一个错误的请求作为回应。是否有其他方法来构建事件?我希望这段代码非常精简,因为它是在非基于UI的应用程序中访问的


创建日历事件的最佳方法是什么?

解决方案包括在开始和结束时设置时区

   string timeZone="Singapore Standard Time";
   invite.Start = new Start { DateTime = session.DateTime_Start, TimeZone = timeZone };
   invite.End = new End { DateTime = session.DateTime_Start.AddMinutes(60), TimeZone = timeZone };
   var postBody = JsonConvert.SerializeObject(invite, Formatting.Indented);