ionic2 microsoft Graph API无法正常工作

时间:2017-09-14 13:49:03

标签: angular ionic2 microsoft-graph azure-ad-graph-api

我正在将Microsoft Graph API添加到应用程序中,并且Get无效。我甚至不确定它是否发送请求。我得到的URL来自Microsoft Graph Explorer。

我可以通过ADAL正确验证身份,然后获取令牌。这是代码:

=IFERROR(
(
(
IF(ISNUMBER(INDIRECT($A6&"!$E$15"));INDIRECT($A6&"!$E$15");0)
+IF(ISNUMBER(INDIRECT($A6&"!$E$29"));INDIRECT($A6&"!$E$29");0)
+IF(ISNUMBER(INDIRECT($A6&"!$E$43"));INDIRECT($A6&"!$E$43");0)
+IF(ISNUMBER(INDIRECT($A6&"!$E$57"));INDIRECT($A6&"!$E$57");0)
+IF(ISNUMBER(INDIRECT($A6&"!$E$71"));INDIRECT($A6&"!$E$71");0)
+IF(ISNUMBER(INDIRECT($A6&"!$E$84"));INDIRECT($A6&"!$E$84");0)
)/6);"")

我收到了这个输出:

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');
      }
    });   
  }
}

但之后没有输出。我从网上尝试了很多建议/代码但没有成功。

这是在错误的API端点(Azure Graph API vs Graph API)上使用ADAL Auth的问题吗?我尝试使用此网址:     https://graph.windows.net/me?api-version Azure Graph API没有成功

提前致谢。

2 个答案:

答案 0 :(得分:1)

感谢大家的反馈意见。我很感激。 我设法获得Azure AD图形API的令牌并调用该库。但是,这使我能够访问用户/组操作,而不是我需要的电子邮件和其他操作。 我刚刚和微软打电话,他们建议我使用MSAL,而不是ADAL。 MSAL javascript包正在预览中。他们还没有出现过cordova套餐。只有原生设备。我会看到它对我有用。即使我在我的项目中使用npm安装了软件包,并在这里使用他们的教程:https://github.com/AzureAD/microsoft-authentication-library-for-js我仍然在“无法找到变量Msal”的实时时遇到一些错误,我相信这不是Msal问题本身,但一个进口问题。 同样,我无法证明这一点“Azure AD图形API”与“图形API”不同,而前者只能让您访问用户操作。所以要小心,如果您希望获得电子邮件功能,请不要浪费时间

答案 1 :(得分:0)

根据代码,您获得了Azure AD Graph的令牌。但是,在代码中,您调用的是Microsoft Graph(https://graph.microsoft.com/v1.0/me)而不是Azure AD Graph。

要通过Azure AD Graph获取用户信息,您可以参考下面的其他信息:

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

或者您可以通过Dan Kershaw在评论中提到的相应令牌来调用Microsoft Graph。

相关问题