Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Microsoft Dynamics CRM和PHP/JSON_Php_Json_Curl_Dynamics Crm - Fatal编程技术网

Microsoft Dynamics CRM和PHP/JSON

Microsoft Dynamics CRM和PHP/JSON,php,json,curl,dynamics-crm,Php,Json,Curl,Dynamics Crm,我必须在网页上实现表单,在提交时将数据发送到Microsoft Dynamics CRM。数据需要保存到某个lead 我创建了一个简单的PHP脚本,它使用curl与CRM服务器通信,但我总是得到401状态代码,指示授权失败 define('MS_CRM_URL', 'https://______.crm.dynamics.com/'); define('MS_CRM_USER', 'user@domain.com'); define('MS_CRM_PASS', 'password'); $me

我必须在网页上实现表单,在提交时将数据发送到Microsoft Dynamics CRM。数据需要保存到某个lead

我创建了一个简单的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>';
define('MS\u CRM\u URL','https://______.crm.dynamics.com/');
定义('MS\U CRM\U用户','user@domain.com');
定义('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);
卷曲设置($ch,卷曲设置桩,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,数组(
));
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_HTTPHEADER,数组(
'接受'=>'应用程序/json',
'OData MaxVersion'=>'4.0',
“OData版本”=>“4.0”,
'内容类型'=>'应用程序/json',
));
$server\u output=curl\u exec($ch);
$status\u code=curl\u getinfo($ch,CURLINFO\u HTTP\u code);
卷曲关闭($ch);
$json=array();
如果((int)$status_code==200){
$json=json_解码($server_输出);
}
回声';
变量转储($status\u code);
var_dump($json);
回声';
$method
var内容取自我在Microsoft文档网站上找到的一个示例。文档对我没有多大帮助。

您看到了吗


另外,看起来有一个用于PHP的ADAL库。您应该能够使用它进行身份验证

您可以使用SOAP身份验证进行验证。我有同样的要求,我们需要从PHP网站发送数据到Dynamics 365 online。我已使用以下链接中的源代码实现了它: