Содержание
Вы можете добавлять новые контакты в ваш аккаунт JustClick, формируя запрос к API сервиса программными методами.
Можно добавлять один контакт сразу в несколько групп.
Запрос передаётся методом POST в формате URLencode на адрес: https://username.justclick.ru/api/AddLeadToGroup
где username — это логин пользователя в системе и его домен 3-его уровня в сервисе JustClick.
Параметры передаваемые в запросе
Параметры запроса совпадают с параметрами формы подписки (подробнее смотрите «Как создать форму подписки»), а именно:
- rid[0] — первая группа, в которую будет добавлен контакт (символьный идентификатор группы);
 - rid[1] — вторая группа, в которую будет добавлен контакт и так далее (не обязательно);
 - lead_name — Имя, ФИО или ник контакта (не обязательно, если пусто будет заменён на «Дорогой друг»);
 - lead_email — e-mail контакта;
 - lead_phone — телефон контакта (не обязательно);
 - lead_city — город проживания контакта (не обязательно);
 - tag — произвольная строковая метка, которой будет помечен контакт (не обязательно);
 - doneurl2 — адрес куда будет перенаправлен контакт после подтверждения подписки (не обязательно);
 - activation — требовать ли от пользователя подтверждения подписки (не обязательно, используется только на тарифе «Гуру» для принудительного включения подтверждения подписки).
 - utm[utm_medium] — утм-параметр канал (не обязательно)
 - utm[utm_source] — утм-параметр источник (не обязательно)
 - utm[utm_campaign] — утм-параметр кампания (не обязательно)
 - utm[utm_content] — утм-параметр объявление (не обязательно)
 - utm[utm_term] — утм-параметр ключ (не обязательно)
 - utm[aff_medium] — парнерский-параметр канал (не обязательно)
 - utm[aff_source] — парнерский-параметр источник (не обязательно)
 - utm[aff_campaign] — парнерский-параметр кампания (не обязательно)
 - utm[aff_content] — парнерский-параметр объявление (не обязательно)
 - utm[aff_term] — парнерский-параметр ключ (не обязательно)
 
Обязательными являются только два поля rid[0] и lead_email. Остальные отправляются на ваше усмотрение.
Если нужно передать информацию, что подписчик пришел от партнера, то вам следует передавать 2 параметра utm[utm_medium] и utm[utm_source] следующим образом:
| 
					 1 2  | 
						'utm[utm_medium]' => 'affiliate', //именно 'affiliate' и ничего другого  'utm[utm_source]' => 'username',// логин партнера в системе justclick  | 
					
Вместе с ними можно использовать партнерские utm_метки (utm[aff_…]). При этом указанный партнер обязательно должен быть участником партнерсой программы и данные метки (utm[aff_…]) будут отображаться только в его партнерском кабинете.
Если требуется подтверждение подписки от пользователя, необходимо передать TRUE в поле activation.
Как работает
Добавление контакта происходит так же как и в случае подписки через форму. Т.е. если требуется активация подписки — пользователю на указанный e-mail будет направлено соответствующее уведомление.
В ответ на запрос ваша система получит результат выполнения функции в формате JSON. Подробнее смотрите «Ответы API сервиса».
Пример на PHP добавления нового пользователя в группу
В примере добавляем пользователя c e-mail’ом «lead@email.ru» в группу «super», логин в системе «username».
Функция GetHash — формирует подпись к передаваемым данным.
Функция CheckHash — проверяет подпись к ответу сервиса.
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69  | 
						 // Логин в системе Джастклик   $user_rs['user_id'] = 'username';  // Ключ для формирования подписи. См. раздел API (ссылка в правом нижнем углу в личном кабинете)   $user_rs['user_rps_key'] = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';   // Формируем массив данных для передачи в API  $send_data = array(  'rid[0]' => '1466416337.7169583381', // группа, в которую попадёт подписчик. Значение можно взять с вкладки API ID при редактировании группы (в Личном Кабинете)  'lead_name' => 'Name',  'lead_email' => 'lead@email.ru',  'lead_phone' => '+788888888',  'lead_city' => 'City',  'tag' => 'this is tag', // произвольная метка  'doneurl2' => 'http://yandex.ru/', // адрес после подтверждения подписки  'activation' => true, // требуем подтверждение подписки  'utm[utm_medium]' => 'cpc',  'utm[utm_source]' => 'direct',  'utm[utm_campaign]' => 'Моя_Кампания',  'utm[utm_content]' => 'контент_123',  'utm[utm_term]' => 'my_label',  );  // Формируем подпись к передаваемым данным  $send_data['hash'] = GetHash($send_data, $user_rs);  // Вызываем функцию AddLeadToGroup в API и декодируем полученные данные  $resp = json_decode(Send('https://username.justclick.ru/api/AddLeadToGroup', $send_data));  // Проверяем ответ сервиса  if(!CheckHash($resp, $user_rs)){  echo "Ошибка! Подпись к ответу не верна!";  exit;  }  if($resp->error_code == 0)  echo "Пользователь добавлен в группу {$send_data['rid[0]']}. Ответ сервиса: {$resp->error_code}";  else  echo "Ошибка код:{$resp->error_code} - описание: {$resp->error_text}"; // =========== ФУНКЦИИ ОТПРАВКИ, ПОЛУЧЕНИЯ И ОБРАБОТКИ ОТВЕТА ============ // Отправляем запрос в API сервиса   function Send($url, $data){  $ch = curl_init();  curl_setopt($ch, CURLOPT_URL, $url);  curl_setopt($ch, CURLOPT_POST, true);  curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // выводим ответ в переменную  $res = curl_exec($ch);  curl_close($ch);  return $res;  }  // Формируем подпись к передаваемым в API данным  function GetHash($params, $user_rs) {  $params = http_build_query($params);  $user_id = $user_rs['user_id'];  $secret = $user_rs['user_rps_key'];  $params = "$params::$user_id::$secret";  return md5($params);  }  // Проверяем полученную подпись к ответу  function CheckHash($resp, $user_rs) {  $secret = $user_rs['user_rps_key'];  $code = $resp->error_code;  $text = $resp->error_text;  $hash = md5("$code::$text::$secret");  if($hash == $resp->hash)  return true; // подпись верна  else  return false; // подпись не верна  }  | 
					
      
