self::$AMO_LOGIN, 'USER_HASH' =>self::$AMO_HASH ); $link = self::link('auth.php?type=json'); self::query($link,$data); } public static function addNote($data){ $notes['request']['notes']['add']=array( //$notes['add']=array( array( 'element_id' => $data['oid'], 'element_type' => $data['to'], 'note_type' => $data['note_type'], 'created_at' => time(), 'text'=>$data['text'], ) ); $link = self::link('v2/json/notes/set'); return self::query($link,$notes); } public static function updateLeads($leads){ //$data['request']['leads']['update']=$leads; //$link = self::link('v2/json/leads/set'); $data['update']=$leads; $link = self::publicLink('v2/leads'); return self::query($link,$data); } public static function getLeadByID($id){ $link = self::link('v2/json/leads/?id='.$id); return self::query($link,[],'GET'); } public static function addLead($data){ /* $leads['request']['leads']['add']=array( array( 'name' =>$data['name']?$data['name']:'Аноним', 'tags' =>$data['tags']?$data['tags']:self::$AMO_TAGS, 'price' =>$data['price']?$data['price']:self::$AMO_PRICE, 'status_id' =>$data['status_id']?$data['status_id']:null, 'pipeline_id' =>$data['pipeline_id']?$data['pipeline_id']:null, 'custom_fields'=>$data['custom_fields']?$data['custom_fields']:[], 'catalog_elements_id'=>$data['catalog_elements_id']?$data['catalog_elements_id']:[], ) ); $link = self::link('v2/json/leads/set'); /**/ $leads['add']=array( array( 'name' =>$data['name']?$data['name']:'Аноним', 'tags' =>$data['tags']?$data['tags']:self::$AMO_TAGS, 'price' =>$data['price']?$data['price']:self::$AMO_PRICE, 'status_id' =>$data['status_id']?$data['status_id']:null, 'pipeline_id' =>$data['pipeline_id']?$data['pipeline_id']:null, 'custom_fields'=>$data['custom_fields']?$data['custom_fields']:[], 'catalog_elements_id'=>$data['catalog_elements_id']?$data['catalog_elements_id']:[], ) ); $link = self::publicLink('v2/leads'); return self::query($link,$leads); } public static function getContacts($a){ // https://developers.amocrm.ru/rest_api/contacts_list.php $s = array(); foreach ($a as $k=>$v) $s[] = $k.'='.$v; $link = self::link('v2/json/contacts/list?'.implode('&',$s)); return self::query($link,$a,'GET'); } public static function linkPost($a){ // https://developers.amocrm.ru/rest_api/links/set.php $arr['request']['links']['link'] = $a; $link = self::link('v2/json/links/set'); return self::query($link,$arr,'POST'); } public static function getCurrent(){ $link = self::link('v2/json/accounts/current'); return self::query($link,array(),''); } public static function addTask($lead_id,$user_id){ /* $contacts['request']['tasks']['add']=array( array( 'element_id'=>$lead_id, 'responsible_user_id'=>$user_id, 'element_type'=>2, 'task_type'=>1, 'text'=>'Позвонить по сделке', 'complete_till'=>time()+60*60*12, ) ); //echo '
'.print_r($contacts).'
'; $link = self::link('v2/json/tasks/set'); return $res = self::query($link,$contacts); /**/ } public static function addContact($data){ $contacts['request']['contacts']['add']=array( array( 'name'=>$data['name'], 'tags'=>self::$AMO_TAGS, 'linked_leads_id'=>$data['linked_leads_id']?$data['linked_leads_id']:array(), 'responsible_user_id'=>$data['who']?$data['who']:'', //'company_name'=>'SuperStar', 'custom_fields'=>$data['custom_fields']?$data['custom_fields']: // kadigarden.. [ array( #Телефоны 'id'=>413859, #Уникальный индентификатор заполняемого дополнительного поля 'values'=>array( array( 'value'=>$data['phone']?$data['phone']:'-', 'enum'=>'WORK' #Мобильный ), ) ), array( #E-mails 'id'=>413861, 'values'=>array( array( 'value'=>$data['email']?$data['email']:'-', 'enum'=>'WORK', #Рабочий ), ) ), ] ) ); //echo '
'.print_r($contacts).'
'; $link = self::link('v2/json/contacts/set'); return $res = self::query($link,$contacts); //var_dump($res); } public static function getCatalogElements($term='',$page=0){ $link = self::publicLink('v2/catalog_elements/?page='.$page.'&term='.$term); return self::query($link,array(['page'=>$page]),'GET'); } static function addCatalogElements($items=[]){ $link = self::publicLink('v2/catalog_elements'); return self::query($link,['add'=>$items]); } static function query($link, $data=array(),$custom_request="POST") { //echo "
".$link."
"; $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); if ($custom_request) curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $custom_request); if ($data) curl_setopt($curl, CURLOPT_POSTFIELDS, je($data)); 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 $out = json_decode($out); $out = je($out); $out = json_decode($out); return $out; } }