我正在将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没有成功
提前致谢。
答案 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。