авторизация проходит, но контакты не добавляются. вроде код тот же, что в API и ID свои подставлены. выдает 400 ошибку
<?php
$user=array(
'USER_LOGIN'=>'***', #Ваш логин (электронная почта)
'USER_HASH'=>'***' #Хэш для доступа к API (смотрите в профиле пользователя)
);
#Формируем ссылку для запроса
$link='***/private/api/auth.php?type=json';
$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($user));
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); #Получим HTTP-код ответа сервера
curl_close($curl); #Завершаем сеанс cURL
$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'];
if(isset($Response['auth'])){#Флаг авторизации доступен в свойстве "auth"
echo 'uspeshno';
} else{
echo 'ne uspeshno';
die();
}
$contacts['request']['contacts']['add']=array(
array(
'name'=>'Roman Feygenberg', #Имя контакта
'linked_leads_id'=>array(),
'company_name'=>'amoCRM', #Наименование компании
'tags' => 'Important, USA', #Теги
'custom_fields'=>array(
#Должность
array(
'id'=>5021,
'values'=>array(
array(
'value'=>'CEO'
)
)
),
array(
#Телефоны
'id'=>5022, #Уникальный индентификатор заполняемого дополнительного поля
'values'=>array(
array(
'value'=>'415.874.3275',
'enum'=>'MOB' #Мобильный
),
array(
'value'=>'415.374.3278',
'enum'=>'OTHER'
),
array(
'value'=>'415.374.3279',
'enum'=>'FAX' #Факс
),
array(
'value'=>'415.874.3274',
'enum'=>'HOME' #Домашний
)
)
),
array(
#E-mails
'id'=>5023,
'values'=>array(
array(
'value'=>'test@mail.com',
'enum'=>'WORK', #Рабочий
),
array(
'value'=>'mymail@gmail.com',
'enum'=>'PRIV',
),
array(
'value'=>'myaccount@amocrm.ru',
'enum'=>'OTHER',
)
)
),
array(
#Адрес
'id'=>5026,
'values'=>array(
array(
'value'=>'505 Montgomery St., Suite 1016, San Francisco, CA 94111'
)
)
),
array(
#Web-site
'id'=>5024,
'values'=>array(
array(
'value'=>'amocrm.com'
)
)
),
array(
#Icq, skype, jabber, IM, gtalk, etc...
'id'=>5025,
'values'=>array(
array(
'value'=>'987654321',
'enum'=>'ICQ'
),
array(
'value'=>'ander_test',
'enum'=>'JABBER'
)
)
),
)
),
array(
'name'=>'Anders Fridden',
//'last_modified'=>1298904164, //optional
'linked_leads_id'=>array(),
'company_name'=>'amoCRM',
'custom_fields'=>array(
array(
'id'=>5022,
'values'=>array(
array(
'value'=>'415.874.3467',
'enum'=>'WORK'
),
array(
'value'=>'415.374.3439',
'enum'=>'OTHER'
),
)
),
array(
'id'=>5023,
'values'=>array(
array(
'value'=>'anders_test@mail.com',
'enum'=>'WORK',
)
)
),
array(
'id'=>5026,
'values'=>array(
array(
'value'=>'234 Montgomery St., Suite 1021, San Francisco, CA 94111'
)
)
),
array(
'id'=>5024,
'values'=>array(
array(
'value'=>'amocrm.com'
)
)
),
array(
'id'=>5025,
'values'=>array(
array(
'value'=>'987654321',
'enum'=>'ICQ'
),
array(
'value'=>'anders_test',
'enum'=>'JABBER'
)
)
),
)
)
);
$link='***/private/api/v2/json/contacts/set';
$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($contacts));
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('Error: '.$E->getMessage().PHP_EOL.'Error code: '.$E->getCode());
}
/**
* Данные получаем в формате JSON, поэтому, для получения читаемых данных,
* нам придётся перевести ответ в формат, понятный PHP
*/
$Response=json_decode($out,true);
$Response=$Response['response']['contacts']['add'];
$output='ID kontaktov:'.PHP_EOL;
foreach($Response as $v)
if(is_array($v))
$output.=$v['id'].PHP_EOL;
print_r ($output);
?>