C# 如何在UWP应用程序中使用Microsoft Graph API为会议分配会议室
我正在调用API,以便在C# 如何在UWP应用程序中使用Microsoft Graph API为会议分配会议室,c#,uwp,microsoft-graph-api,office365api,C#,Uwp,Microsoft Graph Api,Office365api,我正在调用API,以便在固定的日期和时间创建会议。我正在为此使用Microsoft Graph API。这是URL var url = "https://graph.microsoft.com/v1.0/me/events"; 我已经处理了身份验证部分,我的代码执行以下操作,将JSON响应发送到API private async void sendInvites_Click(object sender, RoutedEventArgs e) { var httpCl
固定的日期和时间创建会议
。我正在为此使用Microsoft Graph API
。这是URL
var url = "https://graph.microsoft.com/v1.0/me/events";
我已经处理了身份验证部分,我的代码执行以下操作,将JSON
响应发送到API
private async void sendInvites_Click(object sender, RoutedEventArgs e)
{
var httpClient = new System.Net.Http.HttpClient();
System.Net.Http.HttpResponseMessage response;
var url = "https://graph.microsoft.com/v1.0/me/events";
CIBC.Models.SendMeetingInvites.RootObject obj = new CIBC.Models.SendMeetingInvites.RootObject();
CIBC.Models.SendMeetingInvites.Location loc = new CIBC.Models.SendMeetingInvites.Location();
loc.displayName = GlobalVariables.MeetingRoomName;
//loc.RoomEmailAddress = GlobalVariables.meetingRoomEmailID.ToString();
obj.subject = "Maths";
CIBC.Models.SendMeetingInvites.Body body = new CIBC.Models.SendMeetingInvites.Body();
body.content = "Its a booking for follow up meeting";
body.contentType = "HTML";
obj.body = body;
List<CIBC.Models.SendMeetingInvites.Attendee> attens = new List<Models.SendMeetingInvites.Attendee>();
for(int i=0;i<GlobalVariables.NumberOfParticipant.Count;i++)
{
CIBC.Models.SendMeetingInvites.EmailAddress email = new CIBC.Models.SendMeetingInvites.EmailAddress();
CIBC.Models.SendMeetingInvites.Attendee atten = new CIBC.Models.SendMeetingInvites.Attendee();
email.address = GlobalVariables.NumberOfParticipant[i].ParticipantADdress;
atten.emailAddress = email;
atten.type = "Required";
attens.Add(atten);
}
CIBC.Models.SendMeetingInvites.Start start = new CIBC.Models.SendMeetingInvites.Start();
start.dateTime = GlobalVariables.sendMeetingInviteStartDate;
start.timeZone = "UTC";
obj.start = start;
CIBC.Models.SendMeetingInvites.End end = new CIBC.Models.SendMeetingInvites.End();
end.dateTime = GlobalVariables.sendMeetingInviteEndTime;
end.timeZone = "UTC";
obj.end = end;
obj.attendees = attens;
obj.location = loc;
string postBody = Newtonsoft.Json.JsonConvert.SerializeObject(obj);
// var postBody1 = "{'Subject':'Testing Organizer - 12','Location':{'DisplayName':'Some place'}," +
//"'Start': {'DateTime': '2016-07-15T15:00:00.0000000', 'TimeZone':'UTC'}," +
//"'End': {'DateTime': '2016-07-15T15:30:00.0000000', 'TimeZone':'UTC'}," +
//"'Body':{'Content': 'This is a test of Grap API.', 'ContentType':'Text'}," +
//"'IsOrganizer':'False','Organizer':{'EmailAddress': " + "{'Address':'organizer@some.com'} }}";
// var requestString = @"{"subject":"My event","start":{"dateTime":"2017-09-25T07:44:27.448Z","timeZone":"UTC"},"end":{"dateTime":"2017-10-02T07:44:27.448Z","timeZone":"UTC"}}"";
var request = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Post, url);
//Add the token in Authorization header
request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer",GlobalVariables.Token);
request.Content = new StringContent(postBody, UTF8Encoding.UTF8, "application/json");
response = await httpClient.SendAsync(request);
if (response.IsSuccessStatusCode)
{ }
// return await response.Content.ReadAsStringAsync();
else
{
}
//return "";
}
我的要求是向所有用户发送会议邀请,并提及房间详细信息,如房间的名称和电子邮件ID
我尝试在请求中添加一个RoomEmail地址,就像在Location
类下一样
public string RoomEmailAddress { get; set; }
当我使用MicrosoftGraphExplorer
网站进行测试时,我收到了错误消息
{
“错误”:{
“代码”:“RequestBodyRead”,
“消息”:“类型”Microsoft.OutlookServices.Location上不存在属性“RoomEmailAddress”。请确保仅使用
由类型定义或将类型标记为打开的属性名称
类型。”,
“内部错误”:{
“请求id”:“1883d87d-a5d6-4357-a699-7c112da0e56b”,
“日期”:“2017-09-26T12:03:50”
}
}}
如何确保无论何时创建会议请求
,我都可以为其分配房间
目前,在将请求发送到URL
时,我只能传递DisplayName
。
一旦我删除电子邮件地址属性(我添加了自己)
,代码将返回Success
任何变通方法,以便我可以发送会议室电子邮件地址
,会议室也可以接收会议邀请的副本
?使用“类型”:“资源”
将会议室添加为与会者。然后在位置属性中添加房间的显示名称。是否有任何方法可以根据公司中的特定位置搜索房间?没有,目前没有。rooms API处于预览阶段,仍然非常有限。这是我们正在努力改进的。FindMeetingTimes API能否解析所配置房间的可用性?是的,您可以使用它。我正在将JSON请求中的参数“resolveAvailability”=true传递给位置数组下的API。这是解决客房供应问题的正确方法吗?
public string RoomEmailAddress { get; set; }