2017-09-14 2 views
0

Microsoft Graph API를 응용 프로그램에 추가 중이며 Get이 작동하지 않습니다. 나는 그것이 요청을 보내는 것조차 확신하지 못한다. URL은 Microsoft Graph Explorer에서 가져 왔습니다.ionic2 Microsoft Graph API 작동하지 않음

ADAL을 통해 올바르게 인증을 받고 토큰을 다시받을 수 있습니다.

import {Http, Headers} from "@angular/http"; 
import {Injectable} from "@angular/core"; 
//import 'rxjs/add/operator/map' 
//import 'rxjs/add/operator/catch' 
import 'rxjs/Rx'; 


@Injectable() 
export class EmailRESTService { 

data: any; 
token = localStorage.getItem("token"); 


constructor(private http: Http) { 
    this.data = null; 
} 

load() { 

    console.log('Inside EmailREST Promise: '); 
    this.http.get('https://graph.microsoft.com/v1.0/me', { 
    headers: new Headers ({"Authorization": "Bearer " + this.token}) 
    }).subscribe(data => { 
     if(data.status == 200){ 
     this.data = data.json(); 
     } 

     if(data.status!= 200){ 
     console.log('SOmething worng in Subscribe'); 
     } 
    }); 
    } 
} 

내가이 출력을 얻고있다 :

console.log('Inside EmailREST Promise: '); 

하지만 그 이후로 어떤 출력 여기에 코드입니다. 성공하지 못하면 그물에서 많은 제안/코드를 시도했습니다.

잘못된 API 끝점 (Azure Graph API vs Graph API)에서 ADAL Auth를 사용하는 문제입니까? 나는이 URL을 사용해 보았습니다. https://graph.windows.net/me?api-version Azure Graph API에 성공하지 못했습니다.

미리 감사드립니다.

+0

토큰에서 'aud'및 'scp'클레임은 무엇입니까? [here] (https://jwt.io/)와 토큰의 클레임에서 토큰을 디코딩 할 수 있습니다. –

+0

@FeiXue ** "aud": "https://graph.windows.net"** & ** "scp": "User.Read"** – user3930696

+0

구독자 함수의 두 번째 매개 변수 인 오류 처리기를 작성해야합니다 . 콘솔에 오류를 기록하십시오. 다른 방법으로는 네트워크 탭에서 전화가 끊어지는 이유를 확인할 수 있습니다. –

답변

0

코드를 기반으로 Azure AD 그래프에 대한 토큰을 얻었습니다. 그러나 코드에서 Azure AD Graph 대신 Microsoft Graph (https://graph.microsoft.com/v1.0/me)를 호출했습니다.

는 푸른 AD 그래프를 통해 사용자 정보는 아래의 나머지를 참조 할 수 있습니다하려면 :

GET:https://graph.windows.net/myorganization/me?api-version=1.6 
authorization: bearer {access_token} 

을 아니면 마이크로 소프트 그래프를 전화를 통해 단 커쇼는 주석에서 언급 한 바와 같이 해당 토큰을 얻을 수 있습니다.

+0

) 제가 전에 그 문제라고 생각했기 때문에 그것을 사용했고 401을 무단으로 유지했습니다. – user3930696

+0

사양에서 URL에 "myorganization"이름을 사용하지 않습니다. 사용할 때 400 개의 잘못된 형식의 오류가 발생합니다.내 조직 이름을 xxxx.onmicrosoftonline.com의 첫 번째 부분으로 사용했습니다. 즉 xxxx – user3930696

+0

401 오류에 대한 자세한 오류 메시지는 무엇입니까? 오류에 대해 설명하는 자세한 정보가 포함되어야합니다. 또한 '조직화'는 Azure AD Graph에서도 임차인 이름이나 ID를 사용하는 것으로 작동합니다. [여기] (https://msdn.microsoft.com/Library/Azure/Ad/Graph/api/users-operations#GetAUser)를 참조하십시오. '400' 오류의 경우'api-version' 매개 변수가 포함 된 요청 URL을 확인하십시오.이 매개 변수는 Azure AD 그래프 –

1

여러분의 의견에 감사드립니다. 감사합니다. Azure AD 그래프 API에 대한 토큰을 가져 와서 해당 라이브러리를 호출했습니다. 그러나, 이것은 내가 필요로하는 이메일 및 기타 작업이 아닌 사용자/그룹 작업에 대한 액세스 권한을 제공합니다. 나는 마이크로 소프트와 전화 통화 중이었고, 나는 ADAL이 아닌 MSAL을 사용하도록 권고했다. MSAL 자바 스크립트 패키지가 미리보기 중입니다. 그리고 아직 코드로드 패키지가 없습니다. 기본 장치 만. 나는 그것이 어떻게 작동하는지 보게 될 것이다. 내 프로젝트에서 npm을 사용하여 패키지를 설치하고 자습서를 사용하는 경우 : https://github.com/AzureAD/microsoft-authentication-library-for-js "변수 Msal을 찾을 수 없습니다"라는 실시간 오류가 여전히 발생하지만이 문제는 Msal 자체가 아니라고 생각합니다. 수입 문제. 그리고 다시,이 "Azure AD 그래프 API"는 "그래프 API"와 같지 않으며, 이전 버전에서는 사용자 작업에만 액세스 할 수 있습니다. 그러므로 이메일 기능을 원한다면 시간을 낭비하지 않도록주의하십시오.

관련 문제