Доброй ночи)
Изучаю документацию на AmoCRM
https://developers.amocrm.ru/rest_api/tasks_set.php. Проверил код для авторизации и добавления сделки, подставив свои данные все заработало. С добавлением задачи проблема, код их выдает ошибку 0.
Проверил запрос в консоли
https://developers.amocrm.ru/console.php через нее добавляет. В код разве что в паре мест фигурные скобки добавил (пропущены были в условиях), тоже в дугих примерах делал. Спасибо за ответы)
<?php
$tasks['request']['tasks']['add']=array(
#Привязываем к сделке
array(
'element_id'=>215413, #ID сделки
'element_type'=>2, #Показываем, что это - сделка, а не контакт
'task_type'=>1, #Звонок
'text'=>'My First Task',
'responsible_user_id'=>1529245,
'complete_till'=>1375285346
)
);
//Теперь подготовим данные, необходимые для запроса к серверу
$subdomain='gvandri21@gmail.com'; #Наш аккаунт - поддомен
#Формируем ссылку для запроса
$link='https://'.$subdomain.'.amocrm.ru/private/api/v2/json/tasks/set';
//Нам необходимо инициировать запрос к серверу. Воспользуемся библиотекой cURL (поставляется в составе PHP). Подробнее о работе с этой библиотекой Вы можете прочитать в мануале.
$curl=curl_init(); #Сохраняем дескриптор сеанса cURL
#Устанавливаем необходимые опции для сеанса cURL
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_USERAGENT,'amoCRM-API-client/1.0');
curl_setopt($curl,CURLOPT_URL,$link);
curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'POST');
curl_setopt($curl,CURLOPT_POSTFIELDS,json_encode($tasks));
curl_setopt($curl,CURLOPT_HTTPHEADER,array('Content-Type: application/json'));
curl_setopt($curl,CURLOPT_HEADER,false);
curl_setopt($curl,CURLOPT_COOKIEFILE,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
curl_setopt($curl,CURLOPT_COOKIEJAR,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);
$out=curl_exec($curl); #Инициируем запрос к API и сохраняем ответ в переменную
$code=curl_getinfo($curl,CURLINFO_HTTP_CODE);
//Теперь мы можем обработать ответ, полученный от сервера. Это пример. Вы можете обработать данные своим способом.
$code=(int)$code;
$errors=array(
301=>'Moved permanently',
400=>'Bad request',
401=>'Unauthorized',
403=>'Forbidden',
404=>'Not found',
500=>'Internal server error',
502=>'Bad gateway',
503=>'Service unavailable'
);
try
{
#Если код ответа не равен 200 или 204 - возвращаем сообщение об ошибке
if($code!=200 && $code!=204){
throw new Exception(isset($errors[$code]) ? $errors[$code] : 'Undescribed error',$code);
}
}
catch(Exception $E)
{
die('Ошибка: '.$E->getMessage().PHP_EOL.'Код ошибки: '.$E->getCode());
}
/**
* Данные получаем в формате JSON, поэтому, для получения читаемых данных,
* нам придётся перевести ответ в формат, понятный PHP
*/
$Response=json_decode($out,true);
$Response=$Response['response']['tasks']['add'];
$output='ID добавленных задач:'.PHP_EOL;
foreach($Response as $v){
if(is_array($v)){
$output.=$v['id'].PHP_EOL;
}
}
return $output;