获取令牌后与 Dynamics Web Api 连接时出现问题 (node.js)
Problem connecting with Dynamics Web Api after getting the token (node.js)
我在调用 Dynamics Web 的方法时遇到一些问题 Api。
有了 Adal,我得到了令牌,工作顺利
function acquireToken(dynamicsWebApiCallback){
//a callback for adal-node
function adalCallback(error, token) {
if (!error){
//call DynamicsWebApi callback only when a token has been retrieved
tokenTemp=token.accessToken;
dynamicsWebApiCallback(token);
callback(null,tokenTemp);
}else{
console.log('Token has not been retrieved. Error: ' + error.stack);
callback(error,null);
}
}
//call a necessary function in adal-node object to get a token
adalContext.acquireTokenWithClientCredentials(resource, clientId, secret, adalCallback);
}
但是,在获得令牌后,我尝试了 WhoAmI 功能,但失败了
var dynamicsWebApi = new DynamicsWebApi({
webApiUrl: resource+'/api/data/v9.1/',
onTokenRefresh: acquireToken
});
//call any function
dynamicsWebApi.executeUnboundFunction("WhoAmI").then(function (response) {
console.log('Hello Dynamics 365! My id is: ' + response.UserId);
callback(null,tokenTemp);
}).catch(function(error){
console.log(error);
callback(error,null);
});
错误:
{ 代码: '0x80072560',
消息:'The user is not a member of the organization.',
状态:403,
状态消息:'Forbidden',
headers: '[Object]' }
我仔细检查了目录租户、客户端 ID、密钥。一切都好。
输入错误的参数,我无法正确创建令牌。所以...没关系
有什么想法吗?
亲切的问候
要解决这个问题,有必要创建一个具有 application_id 的应用程序用户并(重要)分配所有必要的角色。
更多信息在这里:
我在调用 Dynamics Web 的方法时遇到一些问题 Api。
有了 Adal,我得到了令牌,工作顺利
function acquireToken(dynamicsWebApiCallback){
//a callback for adal-node
function adalCallback(error, token) {
if (!error){
//call DynamicsWebApi callback only when a token has been retrieved
tokenTemp=token.accessToken;
dynamicsWebApiCallback(token);
callback(null,tokenTemp);
}else{
console.log('Token has not been retrieved. Error: ' + error.stack);
callback(error,null);
}
}
//call a necessary function in adal-node object to get a token
adalContext.acquireTokenWithClientCredentials(resource, clientId, secret, adalCallback);
}
但是,在获得令牌后,我尝试了 WhoAmI 功能,但失败了
var dynamicsWebApi = new DynamicsWebApi({
webApiUrl: resource+'/api/data/v9.1/',
onTokenRefresh: acquireToken
});
//call any function
dynamicsWebApi.executeUnboundFunction("WhoAmI").then(function (response) {
console.log('Hello Dynamics 365! My id is: ' + response.UserId);
callback(null,tokenTemp);
}).catch(function(error){
console.log(error);
callback(error,null);
});
错误:
{ 代码: '0x80072560', 消息:'The user is not a member of the organization.', 状态:403, 状态消息:'Forbidden', headers: '[Object]' }
我仔细检查了目录租户、客户端 ID、密钥。一切都好。
输入错误的参数,我无法正确创建令牌。所以...没关系
有什么想法吗?
亲切的问候
要解决这个问题,有必要创建一个具有 application_id 的应用程序用户并(重要)分配所有必要的角色。
更多信息在这里: