2016-08-20 7 views
5

Potrzebuję zwrócić listę użytkowników z wykresu Microsoft. Robię to poprzez punkt końcowy /v1.0/users.Jak mogę wykryć pokój konferencyjny na liście użytkowników zwróconych przez Microsoft Graph?

np.

https://graph.microsoft.com/v1.0/users/ 

Jednak obecnie zwraca konta do sal konferencyjnych skonfigurowanych jako zasoby w Exchange.

Nie widzę prostego sposobu na ich wykrycie, a tym samym łatwe filtrowanie ich z mojej listy.

Czy ktoś wie, co mogę filtrować, lub szukać w obiekcie, który wskazywałby na to, że jest zasobem kontra kontem użytkownika?

+0

Czy otrzymałeś odpowiedź na to rozwiązanie? – Apoorv

+0

Niestety nie. Wszelkie alternatywne sugestie będą mile widziane i akceptowane jako odpowiedź! –

Odpowiedz

0

Obecnie program Microsoft Graph nie jest w stanie odróżnić skrzynki pocztowej od użytkownika lub pokoju. W celu obejścia tego problemu możemy uzyskać pokoje przy użyciu GetRoomLists i GetRooms z EWS. Oto przykład coraz list pokój i pokoje dla odniesienia:

// 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("[email protected]"); 
    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); 
    } 
} 

A jeśli przeciwnym razie możesz Microsoft Graph wspierać odróżnić rodzaj skrzynki, można przesłać informację zwrotną z linkiem here.

+0

dzięki, ale mówiąc, że powinniśmy użyć innego niezwiązanego API, nie jest rozwiązaniem. oznaczałoby to konieczność uwierzytelnienia etc ... w zupełnie inny sposób. –

3

Od jakiegoś czasu borykam się również z tym problemem. Jednak natknąłem się na tę aktualizację, która wygląda na to, że nowy punkt końcowy interfejsu People API w Graph API może obsługiwać rozróżnianie użytkowników i pomieszczeń/zasobów: https://dev.office.com/blogs/people-api-available-in-microsoft-graph-v1

Właśnie uruchomiłem szybki test w piaskownicy, który potwierdza, że ​​to zapytanie:

GET https://graph.microsoft.com/v1.0/me/people?$filter=personType/subclass eq 'Room' 

zwraca listę zasobów pokoju mojego najemcy. Wydaje się także, że uprawnienie User.ReadBasic.All jest wystarczające dla punktu końcowego /me/people.

0

Interfejs API Microsoft Graph został zaktualizowany: możesz użyć znać metodę GetRooms, o której mówił Fei Xue. Jest to tylko obejście problemu, ale powinno odpowiadać Twoim potrzebom: użyj numeru https://graph.microsoft.com/beta/me/findRooms, aby pobrać wszystkie sale konferencyjne w organizacji.

Powiązane problemy