如何检测从 Microsoft Graph 返回的用户列表中的会议室?
How can I detect a meeting room in list of users returned from the Microsoft Graph?
我需要 return 来自 Microsoft Graph 的用户列表。我正在通过 /v1.0/users 端点执行此操作。
例如
https://graph.microsoft.com/v1.0/users/
但是,它目前 returns 帐户用于在 Exchange 中设置为资源的会议室。
我找不到一种简单的方法来检测这些内容,从而轻松地将它们从我的列表中过滤掉。
有谁知道我可以根据什么进行筛选,或者在 object 中查找哪些内容可以表明它是资源还是用户帐户?
目前Microsoft Graph无法区分邮箱是用户还是房间。作为解决方法,我们可以使用 EWS 的 GetRoomLists and GetRooms 获取房间。下面是一个获取房间列表和房间的例子,供大家参考:
// Return all the room lists in the organization.
// This method call results in a GetRoomLists call to EWS.
EmailAddressCollection myRoomLists = service.GetRoomLists();
// Display the room lists.
foreach (EmailAddress address in myRoomLists)
{
Console.WriteLine("Email Address: {0} Mailbox Type: {1}", address.Address, address.MailboxType);
}
private static void GetRooms(ExchangeService service)
{
// Return all the room lists in the organization
EmailAddressCollection myRoomLists = service.GetRoomLists();
// Retrieve the room list that matches your criteria
EmailAddress myAddress = new EmailAddress("building31@contoso.com");
foreach (EmailAddress address in myRoomLists)
{
if (address == myAddress)
{
Console.WriteLine("Found {0} in room list", myAddress);
}
}
// Expand the selected collection to get a list of rooms.
System.Collections.ObjectModel.Collection<EmailAddress> myRoomAddresses = service.GetRooms(myAddress);
// Display the individual rooms.
foreach (EmailAddress address in myRoomAddresses)
{
Console.WriteLine("Email Address: {0}", address.Address);
}
}
并且如果希望Microsoft Graph支持区分邮箱类型,可以提交反馈link here.
我 运行 这个问题也有一段时间了。然而,我只是偶然发现了这个更新,它看起来像图中新的 People API 端点 API 可以支持区分用户和 rooms/resources:https://dev.office.com/blogs/people-api-available-in-microsoft-graph-v1
我只是 运行 在沙盒中进行了快速测试,确认了这个查询:
GET https://graph.microsoft.com/v1.0/me/people?$filter=personType/subclass eq 'Room'
returns 我房客的房间资源列表。很好地,似乎 User.ReadBasic.All
权限对于 /me/people
端点来说已经足够了。
Microsoft Graph API 已更新:您可以使用飞雪所说的 GetRooms 方法。
这只是一种解决方法,但它应该适合您的需要:使用 https://graph.microsoft.com/beta/me/findRooms
检索您组织中的所有会议室。
我需要 return 来自 Microsoft Graph 的用户列表。我正在通过 /v1.0/users 端点执行此操作。
例如
https://graph.microsoft.com/v1.0/users/
但是,它目前 returns 帐户用于在 Exchange 中设置为资源的会议室。
我找不到一种简单的方法来检测这些内容,从而轻松地将它们从我的列表中过滤掉。
有谁知道我可以根据什么进行筛选,或者在 object 中查找哪些内容可以表明它是资源还是用户帐户?
目前Microsoft Graph无法区分邮箱是用户还是房间。作为解决方法,我们可以使用 EWS 的 GetRoomLists and GetRooms 获取房间。下面是一个获取房间列表和房间的例子,供大家参考:
// Return all the room lists in the organization.
// This method call results in a GetRoomLists call to EWS.
EmailAddressCollection myRoomLists = service.GetRoomLists();
// Display the room lists.
foreach (EmailAddress address in myRoomLists)
{
Console.WriteLine("Email Address: {0} Mailbox Type: {1}", address.Address, address.MailboxType);
}
private static void GetRooms(ExchangeService service)
{
// Return all the room lists in the organization
EmailAddressCollection myRoomLists = service.GetRoomLists();
// Retrieve the room list that matches your criteria
EmailAddress myAddress = new EmailAddress("building31@contoso.com");
foreach (EmailAddress address in myRoomLists)
{
if (address == myAddress)
{
Console.WriteLine("Found {0} in room list", myAddress);
}
}
// Expand the selected collection to get a list of rooms.
System.Collections.ObjectModel.Collection<EmailAddress> myRoomAddresses = service.GetRooms(myAddress);
// Display the individual rooms.
foreach (EmailAddress address in myRoomAddresses)
{
Console.WriteLine("Email Address: {0}", address.Address);
}
}
并且如果希望Microsoft Graph支持区分邮箱类型,可以提交反馈link here.
我 运行 这个问题也有一段时间了。然而,我只是偶然发现了这个更新,它看起来像图中新的 People API 端点 API 可以支持区分用户和 rooms/resources:https://dev.office.com/blogs/people-api-available-in-microsoft-graph-v1
我只是 运行 在沙盒中进行了快速测试,确认了这个查询:
GET https://graph.microsoft.com/v1.0/me/people?$filter=personType/subclass eq 'Room'
returns 我房客的房间资源列表。很好地,似乎 User.ReadBasic.All
权限对于 /me/people
端点来说已经足够了。
Microsoft Graph API 已更新:您可以使用飞雪所说的 GetRooms 方法。
这只是一种解决方法,但它应该适合您的需要:使用 https://graph.microsoft.com/beta/me/findRooms
检索您组织中的所有会议室。