2016-06-01 2 views

답변

2

사용자/그룹 검색을 통해 메일 주소가 사용자인지 또는 그룹인지를 결정할 수 있습니다. 예를 들어, 우리는 아래의 REST를 통해 특정 그룹을 얻을 수 있습니다 :

https://graph.microsoft.com/v1.0/groups ?$filter=mail+eq+'[email protected] '다음 우리가 제공하는 이메일이 사용자 인 경우

, 응답은 빈 값을 가지며, 그렇지 않으면이 그룹에 대한 정보를 반환합니다.

그리고 특정 그룹의 구성원을 얻기 위해, 우리는 위의 요청에 의해 ID를 리턴으로 요청 할 수 있습니다 :

https://graph.microsoft.com/v1.0/groups/ {그룹 ID를}/회원 여기

그리고 그룹을 얻을 수있는 코드 및 해당 회원을 참조하십시오. 보다 유연하고 효율적이기 때문에 HttpClient를 통해 REST를 만드는 것이 좋습니다.

공공 비동기 작업 GetGroup (문자열 mailAddress) {

var groups = await graphserviceClient.Groups.Request().Top(10).GetAsync(); 

    foreach (var group in groups.CurrentPage) 
    { 
     Console.WriteLine(group.Mail); 
     if (mailAddress.Equals(group.Mail)) 
      return group.Id; 
    } 

    while (groups.NextPageRequest != null) 
    { 
     groups = await groups.NextPageRequest.GetAsync(); 

     foreach (var group in groups.CurrentPage) 
     { 
      Console.WriteLine(group.Mail); 
      if (mailAddress.Equals(group.Mail)) 
       return group.Id; 
     } 
    } 

    return null; 

} 

public async void GetMembers(string groupId) 
{ 

    HttpClient client = new HttpClient(); 
    client.DefaultRequestHeaders.Add("Authorization", "bearer " + _accessToken); 

    string serviceURL = String.Format("https://graph.microsoft.com/v1.0/groups/{0}/members?$select=mail", groupId); 
    var response = client.GetAsync(serviceURL).Result; 

    JObject json = JObject.Parse(response.Content.ReadAsStringAsync().Result); 
    foreach (var mail in json["value"].Values("mail")) 
    { 
     Console.WriteLine(mail); 
    } 
} 

갱신 우리는 그룹 읽을 수있는 "Group.Read.All"범위가 필요

: enter image description here

+0

감사합니다. https://graph.microsoft.com/v1.0/groups?$filter=mail+eq+'[email protected] 'API에는 관리자 수준의 승인이 필요합니다. 사용자 수준 인증으로이를 수행 할 수있는 방법이 있습니까? – GraphUser2016

+1

아니요. 관리자 수준의 승인없이 그룹 정보를 검색 할 수 없습니다. 그러나 사용자 수준 인증을 사용하여 솔루션을 완성 할 수도 있습니다. 앱에 "Group.Read.All"범위가 있는지 확인하면됩니다. 위 제안의 스크린 샷을 참조하십시오. –

+1

Group.Read, 모두에는 관리자 권한이 필요합니다. 사용자가 동의 할 수 있도록 몇 가지 새로운 그룹 권한을 개발 중입니다. –

관련 문제