За последние 24 часа нас посетили 5517 программистов и 427 роботов. Сейчас ищут 198 программистов ...

rest api amo crm - интеграция с сайтом

Тема в разделе "PHP для новичков", создана пользователем Stiros, 29 мар 2017.

  1. Stiros

    Stiros Новичок

    С нами с:
    8 июн 2016
    Сообщения:
    10
    Симпатии:
    1
    Добрый день!
    Необходимо интегрировать amo crm с формами сайта

    Код:

    Код (Text):
    1. $data=array(
    2.     'name'=>isset($_POST['name']) ? $_POST['name'] : 'ss',
    3.     'company'=>isset($_POST['company']) ? $_POST['company'] : '',
    4.     'position'=>isset($_POST['position']) ? $_POST['position'] : '',
    5.     'phone'=>isset($_POST['phone']) ? $_POST['phone'] : '',
    6.     'email'=>isset($_POST['Email']) ? $_POST['Email'] : 'sd',
    7.     'web'=>isset($_POST['web']) ? $_POST['web'] : '',
    8.     'jabber'=>isset($_POST['jabber']) ? $_POST['jabber'] : '',
    9.     'scope'=>isset($_POST['scope']) && is_array($_POST['scope']) ? $_POST['scope'] : array()
    10. );
    11.  
    12. $scope_info=array(
    13.     'it'=>'IT, телекоммуникации, связь, электроника',
    14.     'auto'=>'Автосервис, автобизнес',
    15.     'bookkeeping'=>'Бухгалтерия, аудит',
    16.     'restaurants'=>'Рестораны, фастфуд',
    17.     'economy'=>'Экономика, финансы'
    18. );
    PHP:
    1. #Массив с параметрами, которые нужно передать методом POST к API системы
    2. $user=array(
    3.     'USER_LOGIN'=>'', #Ваш логин (электронная почта)
    4.    'USER_HASH'=>'' #Хэш для доступа к API (смотрите в профиле пользователя)
    5. );
    6. $subdomain=''; #Наш аккаунт - поддомен
    7. #Формируем ссылку для запроса
    8. $link='https://'.$subdomain.'.amocrm.ru/private/api/auth.php?type=json';
    9. $curl=curl_init(); #Сохраняем дескриптор сеанса cURL
    10. #Устанавливаем необходимые опции для сеанса cURL
    11. curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
    12. curl_setopt($curl,CURLOPT_USERAGENT,'amoCRM-API-client/1.0');
    13. curl_setopt($curl,CURLOPT_URL,$link);
    14. curl_setopt($curl,CURLOPT_POST,true);
    15. curl_setopt($curl,CURLOPT_POSTFIELDS,http_build_query($user));
    16. curl_setopt($curl,CURLOPT_HEADER,false);
    17. curl_setopt($curl,CURLOPT_COOKIEFILE,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
    18. curl_setopt($curl,CURLOPT_COOKIEJAR,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
    19. curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);
    20. curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);
    21.  
    22. $out=curl_exec($curl); #Инициируем запрос к API и сохраняем ответ в переменную
    23. $code=curl_getinfo($curl,CURLINFO_HTTP_CODE); #Получим HTTP-код ответа сервера
    24. curl_close($curl); #Заверашем сеанс cURL
    25. CheckCurlResponse($code);
    26. /**
    27. * Данные получаем в формате JSON, поэтому, для получения читаемых данных,
    28. * нам придётся перевести ответ в формат, понятный PHP
    29. */
    30. $Response=json_decode($out,true);
    31. $Response=$Response['response'];
    32. if(isset($Response['auth'])) #Флаг авторизации доступен в свойстве "auth"
    33.    return 'Авторизация прошла успешно';
    34. return 'Авторизация не удалась';
    PHP:
    1. $link='https://'.$subdomain.'.amocrm.ru/private/api/v2/json/accounts/current'; #$subdomain уже о22227ли выше
    2. $curl=curl_init(); #Сохраняем дескриптор сеанса cURL
    3. #Устанавливаем необходимые опции для сеанса cURL
    4. curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
    5. curl_setopt($curl,CURLOPT_USERAGENT,'amoCRM-API-client/1.0');
    6. curl_setopt($curl,CURLOPT_URL,$link);
    7. curl_setopt($curl,CURLOPT_HEADER,false);
    8. curl_setopt($curl,CURLOPT_COOKIEFILE,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
    9. curl_setopt($curl,CURLOPT_COOKIEJAR,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
    10. curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);
    11. curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);
    12. $out=curl_exec($curl); #Инициируем запрос к API и сохраняем ответ в переменную
    13. $code=curl_getinfo($curl,CURLINFO_HTTP_CODE);
    14. curl_close($curl);
    15. CheckCurlResponse($code);
    16. /**
    17. * Данные получаем в формате JSON, поэтому, для получения читаемых данных,
    18. * нам придётся перевести ответ в формат, понятный PHP
    19. */
    20. $Response=json_decode($out,true);
    21. $account=$Response['response']['account'];
    PHP:
    1. $leads['request']['leads']['add']=array(
    2.   array(
    3.     'name'=>'Deal for buying a cow',
    4.     //'date_create'=>1298904164, //optional
    5.     'status_id'=>142,
    6.     'price'=>300000,
    7.     'responsible_user_id'=>215302,
    8.     'tags' => 'Important, USA', #Теги
    9.    'custom_fields'=>array(
    10.       array(
    11.         'id'=>427496, # id поля типа multiselect
    12.        'values'=>array( # id значений передаются в массиве values через запятую
    13.            1240665,
    14.             1240664
    15.         )
    16.       ),
    17.       array(
    18.         'id'=>427497, # id поля типа radiobutton
    19.        'values'=>array(
    20.           array(
    21.             'value'=>1240667
    22.           )
    23.         )
    24.       ),
    25.       array(
    26.         'id'=>427231, # id поля типа date
    27.        'values'=>array(
    28.           array(
    29.             'value'=>'14.06.2014' # в качестве разделителя используется точка
    30.          )
    31.         )
    32.       ),
    33.       array(
    34.         #Смарт адрес
    35.        'id'=>458615, #Уникальный индентификатор заполняемого дополнительного поля
    36.        'values'=>array(
    37.           array(
    38.             'value' => 'Address line 1',
    39.             'subtype' => 'address_line_1',
    40.           ),
    41.           array(
    42.             'value' => 'Address line 2',
    43.             'subtype' => 'address_line_2',
    44.           ),
    45.           array(
    46.             'value' => 'Город',
    47.             'subtype' => 'city',
    48.           ),
    49.           array(
    50.             'value' => 'Регион',
    51.             'subtype' => 'state',
    52.           ),
    53.           array(
    54.             'value' => '203',
    55.             'subtype' => 'zip',
    56.           ),
    57.           array(
    58.             'value' => 'RU',
    59.             'subtype' => 'country',
    60.           )
    61.         )
    62.       )
    63.     )
    64.   ),
    65.   array(
    66.     'name'=>'Deal for sailing a horse',
    67.     //'date_create'=>1298904164, //optional
    68.     'status_id'=>7087609,
    69.     'price'=>600200,
    70.     'responsible_user_id'=>215309,
    71.     'custom_fields'=>array(
    72.       array(
    73.         #Нестандартное дополнительное поле типа "мультисписок", которое мы создали
    74.        'id'=>426106,
    75.         'values'=>array(
    76.           1237756,
    77.           1237758
    78.         )
    79.       )
    80.     )
    81.   )
    82. );
    Ошибок не выдает, но сделки не добавляются
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    6.518
    Симпатии:
    1.034
    Адрес:
    Лень
    куда не добавляются?
     
  3. Stiros

    Stiros Новичок

    С нами с:
    8 июн 2016
    Сообщения:
    10
    Симпатии:
    1
    сделка не добавляется в amo crm
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    6.518
    Симпатии:
    1.034
    Адрес:
    Лень
    У них API мануал есть
     
  5. Stiros

    Stiros Новичок

    С нами с:
    8 июн 2016
    Сообщения:
    10
    Симпатии:
    1
    Вот это по мануалу
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    6.518
    Симпатии:
    1.034
    Адрес:
    Лень
    а что присылается в переменную $out=curl_exec($curl); ?
     
  7. Stiros

    Stiros Новичок

    С нами с:
    8 июн 2016
    Сообщения:
    10
    Симпатии:
    1
    1. $out=curl_exec($curl); #Инициируем запрос к API и сохраняем ответ в переменную
    2. $code=curl_getinfo($curl,CURLINFO_HTTP_CODE); #Получим HTTP-код ответа сервера
    3. curl_close($curl); #Завершаем сеанс cURL
     
  8. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    6.518
    Симпатии:
    1.034
    Адрес:
    Лень
    что в переменной $out присылается ? каков ответ от сервера того ?