Aba*_*ett 4 node.js azure-active-directory azure-ad-graph-api
我想使用此库与我的广告的图API进行交互-https: //github.com/microsoftgraph/microsoft-graph-docs/blob/master/concepts/nodejs.md
但是,我发现所有用于返回访问令牌的现有javascript库都希望传递一个返回URL,以及一些其他特定于Web的东西,这使我相信这是Microsoft的某种要求。
在运行后端节点脚本(与网络无关)时,是否有任何好的方法来认证/接收访问令牌,以便可以开始针对Microsoft Graph API进行调用?在此先感谢您的建议。
Vin*_*our 11
BU0的答案对我来说不正确,因为微软改变了他们使用图形 API 的方式,所以我无法获得我需要的所有数据。这是我使用 BU0 答案和本教程的方法:
const request = require("request");
const endpoint = "https://login.microsoftonline.com/[Tenant]/oauth2/v2.0/token";
const requestParams = {
grant_type: "client_credentials",
client_id: "[ApplicationID]",
client_secret: "[Key]",
scope: "https://graph.microsoft.com/.default"
};
request.post({ url: endpoint, form: requestParams }, function (err, response, body) {
if (err) {
console.log("error");
}
else {
console.log("Body=" + body);
let parsedBody = JSON.parse(body);
if (parsedBody.error_description) {
console.log("Error=" + parsedBody.error_description);
}
else {
console.log("Access Token=" + parsedBody.access_token);
}
}
});
function testGraphAPI(accessToken) {
request.get({
url:"https://graph.microsoft.com/v1.0/users",
headers: {
"Authorization": "Bearer " + accessToken
}
}, function(err, response, body) {
console.log(body);
});
}
Run Code Online (Sandbox Code Playgroud)
要运行连接到Graph API的未经用户身份验证的后端守护程序,您需要使用仅应用程序身份验证流程。以下是官方步骤的快速摘要:
yourtenant.onmicrosoft.com名称,然后将此值复制下来。Azure Active Directory刀片的App Registrations部分而不是直接在租户属性中注册应用程序。复制Application ID; 我们稍后再用。Save,然后单击Grant Permissions按钮。login.microsoftonline.com域发出HTTP请求以获取访问令牌。这是指向Microsofts Node.js示例的链接,这是指向HTTP调用中用于检索访问令牌的直接文档的链接。这是一个超级精简的示例,将输出检索到的访问令牌。更换[Tenant],[ApplicationID]和[Key]值:
const request = require("request");
const endpoint = "https://login.microsoftonline.com/[Tenant].onmicrosoft.com/oauth2/token";
const requestParams = {
grant_type: "client_credentials",
client_id: "[ApplicationID]",
client_secret: "[Key]",
resource: "https://graph.windows.net"
};
request.post({ url:endpoint, form: requestParams }, function (err, response, body) {
if (err) {
console.log("error");
}
else {
console.log("Body=" + body);
let parsedBody = JSON.parse(body);
if (parsedBody.error_description) {
console.log("Error=" + parsedBody.error_description);
}
else {
console.log("Access Token=" + parsedBody.access_token);
}
}
});
Run Code Online (Sandbox Code Playgroud)
获得access_token后,我们可以调出Graph API。假设正确配置了应用程序权限并从第4步开始应用,我们可以开始发出Graph API请求:
function testGraphAPI(accessToken) {
request.get({
url:"https://graph.windows.net/[Tenant]/users?api-version=1.6",
headers: {
"Authorization": accessToken
}
}, function(err, response, body) {
console.log(body);
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3007 次 |
| 最近记录: |