我必须在网页上实现表单,该表单在提交时将数据发送到Microsoft Dynamics CRM。数据需要保存到某个潜在客户。
我创建了一个简单的PHP脚本,使用curl与CRM服务器通信,但我总是得到401
状态代码,指示授权失败。
define('MS_CRM_URL', 'https://______.crm.dynamics.com/');
define('MS_CRM_USER', 'user@domain.com');
define('MS_CRM_PASS', 'password');
$method = '/api/data/v8.0/accounts?$select=name&$top=3';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, MS_CRM_URL . $method);
curl_setopt($ch, CURLOPT_USERPWD, MS_CRM_USER .':'. MS_CRM_PASS);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept' => 'application/json',
'OData-MaxVersion' => '4.0',
'OData-Version' => '4.0',
'Content-Type' => 'application/json',
));
$server_output = curl_exec($ch);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$json = array();
if ((int)$status_code === 200) {
$json = json_decode($server_output);
}
echo '<pre>';
var_dump($status_code);
var_dump($json);
echo '</pre>';
$method
var内容取自我在Microsoft文档网站上找到的一个示例。文档对我没有太大帮助。
你看到这个了吗?http://jlattimer.blogspot.com/2015/02/soap-only-authentication-using-php.html
此外,看起来还有一个用于PHP的ADAL库。https://github.com/jamesmcq/azure-activedirectory-library-for-php您应该能够使用它进行身份验证。
您可以使用SOAP身份验证来完成此操作。我有同样的要求,我们需要从PHP网站在线发送数据到Dynamics365。我使用以下链接的源代码实现了它:
https://bitbucket.org/nigelheap/msdynamicsphp-master