Здравствуйте.
При изучении документации по [URL=https://dev.1c-bitrix.ru/rest_help/general/batch.php]REST API[/URL] и просмотре [URL=https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=99&LESSON_ID=8581&LESSON_PATH=8771.8583.8581]вебинара про WEBHOOK[/URL] в видео услышал информацию что можно batch запрос поместить в batch и таким образом уменьшить время запроса и избежать блокировки при обработке большого колличества запросов. Пытаюсь реализовать, но в итоге получаю:
[test_1] => Array ( [error] => ERROR_METHOD_NOT_FOUND [error_description] => Method not found!Подскажите где в коде ошибка, что я делаю не так.
[CODE]$spisok = ['', '44', '46', ' '];
$region = [ 'Алтайский край',
'Архангельская',
'Астраханская',
'Башкортостан',
'Владимирская',
'Волгоградская',
'Вологодская',
'Воронежская',
'Ярославская'
];
function getStatistics1($r,$s) {
$batch = array();
for($i=0;$i<count($r);$i++) {
$batch['test_'.$i] = array(
"find_contact" => 'crm.company.list?'
.http_build_query(array(
"filter" => array(
"UF_CRM_1579359718583" => $r[$i],
"UF_CRM_1579360152148" => $s[0]
),"select" => array(
"UF_CRM_1579359718583",
"UF_CRM_1579360152148")
)),
"get_contact" => 'crm.company.list?'
.http_build_query(array(
"filter" => array(
"UF_CRM_1579359718583" => $r[$i],
"UF_CRM_1579360152148" => $s[1]
),"select" => array(
"UF_CRM_1579359718583",
"UF_CRM_1579360152148")
)),
"get_company" => 'crm.company.list?'
.http_build_query(array(
"filter" => array(
"UF_CRM_1579359718583" => $r[$i],
"UF_CRM_1579360152148" => $s[2]
),"select" => array(
"UF_CRM_1579359718583",
"UF_CRM_1579360152148")
))
);
}
echo '<pre>';
print_r($batch);
echo '</pre>';
return executeHook(array('cmd' => $batch));
}
getStatistics();
echo '<pre>';
//print_r($batch);
print_r(getStatistics1($region,$spisok));
echo '</pre>';
function getStatistics() {
$batch = array();
$batch = array(
"find_contact" => 'crm.duplicate.findbycomm?'
.http_build_query(array(
"entity_type" => "CONTACT",
"type" => "PHONE",
"values" => array("8 (951) 615-94-93")
)),
"get_contact" => 'crm.contact.get?'
.http_build_query(array(
"id" => '$result[find_contact][CONTACT][0]',
)),
"get_company" => 'crm.company.get?'
.http_build_query(array(
"id" => '$result[get_contact][COMPANY_ID]',
"select" => array("*"),//, "COMMUNICATIONS"),
))
);
echo '<pre>';
print_r($batch);
echo '</pre>';
return executeHook(array('cmd' => $batch));
}
echo '<pre>';
//print_r($batch);
//print_r(getStatistics());
echo '</pre>';
function executeHook($params) {
$queryUrl = 'https://test.bitrix24.ru/rest/1/0000000000000000000/batch.json';
$queryData = http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $queryUrl,
CURLOPT_POSTFIELDS => $queryData,
));
$result = curl_exec($curl);
curl_close($curl);
return json_decode($result, true);
}
[/CODE]