如何使用node.js应用程序连接到Dynamics CRM的组织数据服务?
我在开发人员资源中没有Web API,那么如何使用组织数据服务获取数据?
...
答案 0 :(得分:0)
如果您使用的是CRM 2016或更高版本,Use the Microsoft Dynamics 365 Web API
Web API,它是Microsoft Dynamics 365的新功能(在线和 内部部署),提供可以使用的开发经验 跨多种编程语言,平台和 设备。 Web API实现了OData(开放数据协议), 版本4.0,这是用于构建和使用RESTful API的OASIS标准 在丰富的数据源上。
由于Web API建立在开放标准之上,因此我们不提供 特定的开发人员经验的程序集您可以撰写HTTP 请求特定操作或使用第三方库 为您想要的任何语言或平台生成类。
如果您使用的是CRM 2015或更早版本,请使用Organization Service (aka SOAP endpoint)。
从CRM 2011开始可用,该服务提供了经典的SOAP端点 并且可能是最常用的Web服务。这项服务 提供对全部365种操作和消息的访问。对于 .Net开发人员SDK提供了一组程序集,这些程序集意味着 SOAP端点的复杂性使服务变得简单 抽象了。非.Net开发人员更具挑战性 环境,它们必须直接与SOAP端点通信 这通常是一件复杂得多的事情。
答案 1 :(得分:0)
正在共享this blog中的github代码示例。
这使用Node.js脚本中的OrganizationData服务来提取联系人的全名(ContactSet)。
// Set the headers for the call to CRM
var headers = {
'Authorization': 'Bearer ' + sess.access_token, //send the oauth access token to authenticate
'Accept': 'application/json' //tell CRM to send json data back
}
//configure the CRM odata request
var options = {
host : crm_host,
port : crm_port,
path : '/XRMServices/2011/OrganizationData.svc/ContactSet?$select=FullName', //hardcoded to select just the contact name
method : 'GET',
rejectUnauthorized: false,//to allow for self-signed SSL certificates - use at your own risk!!!
headers : headers //set in the previous step
};
var reqGet = https.request(options, function(resGet) {
//should do something here if we get 'www-authenticate': 'Bearer error' response headers
//console.log("headers: ", resGet.headers);
resGet.on('data', function(d) {
//console.info('raw response: ' + d);
var json = JSON.parse(d);
var records = json.d.results;
//console.info('results: ' + JSON.stringify(records));
for (var i in records) {
res.write(records[i].FullName + '<br />');
}
res.write('</body>');
res.write('</html>');
res.end();
});
});
reqGet.end();
//handle errors
reqGet.on('error', function(e) {
console.error(e);
});