2017-04-12 98 views
0

活动我试图把这个代码O365创建使用REST API

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的应用程序中访问的。

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

回答

0

的修补程序涉及在开始设置时区和结束

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);