Встала задача индивидуальной интеграции сайта c Getresponse.  Нужно было найти в подписчиках контакт и добавить к нему телефон по API.

Вроде тривиальная задача, если есть API, но документация оставляет желать лучшего. Не подумал бы, но самая сложность возникла с тем, как получить ID custom field.

  1. Получить API ключ
  2. Создать массив, чтобы найти контакты в Getresponse по email
$param = [
	"subscribersType"=> [
	"subscribed"
	],
	"sectionLogicOperator"=> "or",
	"section"=> [
	"campaignIdsList"=> [
	"BiSHg"
	],
	"subscriberCycle"=> [
		"receiving_autoresponder",
		"not_receiving_autoresponder"
		],
	"subscriptionDate"=> "all_time",
	"logicOperator"=> "and",
	"conditions"=> [
		[
			"conditionType"=> "email",
			"operatorType"=> "string_operator",
			"operator"=> "contains",
			"value"=> $findEmail
		]
		]
	]
];

3.   Отправляем запрос в getresponse на поиск контакта

$headers = [
'Accept: application/json',
'Content-Type: application/json',
'X-Auth-Token: api-key '.$getresponse_key
];

$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, 'https://api.getresponse.com/v3/search-contacts/contacts');
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($param, JSON_FORCE_OBJECT));
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
$result = curl_exec($curl);
$results = json_decode($result, TRUE);

foreach ($results as $result) {
if ($result['email']==$findEmail) {

$contact_id = $result['contactId'];
$campaignId = $result['campaign']['campaignId'];

echo '<pre>';
print_r($result);
echo '</pre>';

}

}

 

 

Share This