Добрый день, раньше к crm (bpmonline) по протоколу OData выполняли запросы таким образом:
$url = "https://0632.bpmonline.com/ServiceModel/AuthService.svc/Login";
$requestData["Language"] = "ru";
$requestData["SolutionName"] = "TSBpm";
$requestData["TimeZoneOffset"] = -180;
$requestData["UserName"] = "user";
$requestData["UserPassword"] = "pass";
$jcres = json_encode($requestData);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $jcres);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($jcres))
);
$result = curl_exec($ch);
curl_close($ch);
$url = "https://0632.bpmonline.com/0/ServiceModel/EntityDataService.svc/LeadCollection";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
$obj = new stdClass();
$arr = array(
"LeadName" => 'name',
'Email' => 'test@gmail.com',
);
foreach ($arr as $k => $v) {
$obj->{$k} = $v;
}
$json = json_encode($obj);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json;odata=verbose',
'Content-Length: ' . strlen($json))
);
$result = curl_exec($ch);
curl_close($ch);
Вчера была обновлена версия crm и добавлена защита от CSRF атак и теперь не удается выполнять запросы, появляется ошибка: 403 - Forbidden: Access is denied. You do not have permission to view this directory or page using the credentials that you supplied.
Подскажите, пожалуйста как правильно реализовать добавление CSRF-токена в заголовок запроса.
$token = $doc->getElementById("signin__csrf_token")->attributes->getNamedItem("value")->value;
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($jcres)),
'X-CSRF-Token:' . $token;
);
http://stackoverflow.com/questions/28785578/curl-csrf-token
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости