API для работы со списками Автопилота
Olexandr Moyseyuk·26 Apr 2020
Сделал для некоторых приложений сообществ возможность легко добавить кнопку подписки на любой список Автопилота.
Для упрощения разработки сделал API максимально похожим на API Senler.
Формирование подписи
Добавьте функцию, которая ниже, в ваш код и используйте для формирования подписи запроса = значения параметра hash
.
function GetAutopilotHash($params, $secret){
$values = "";
foreach ($params as $value) { $values .= (is_array($value) ? implode("", $value) : $value); }
return md5($values . $secret);
}
В массив параметров нужно обязательно добавлять параметр hash с результатом работы этой функции. Например так:
$secret = 'PASTE_YOUR_SECRET_HERE'; // ключ ОБЯЗАТЕЛЬНО смените на свой!
$params['hash'] = GetAutopilotHash($params, $secret);
Отправка запросов
Добавлю вам для удобства также готовую функцию на PHP для отправки запросов на Автопилот.
function skyRequest($link='',$params = array()){
if ($link) {
$curl_opt = array(
CURLOPT_URL => $link,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
CURLOPT_POST => true,
CURLOPT_FOLLOWLOCATION =>true,
CURLOPT_POSTFIELDS => http_build_query($params)
);
$skyCurl = curl_init();
curl_setopt_array($skyCurl, $curl_opt);
$response = curl_exec($skyCurl);
curl_close($skyCurl);
}
else{
$response = 'URL not found';
}
return $response;
}
Примеры ниже будут с использованием этой функции!
Получить перечень списков
Метод: lists/get
Доступные параметры:
vk_group_id
— ID сообщества в ВК;assoc
— в виде асоциативного массива;
Возможные значения: 0 или 1.public_only
— только публичные списки (подписные страницы);
Возможные значения: 0 или 1.
Примечание: Автопилот получает списки только указанного сообщества.
В обычном режиме списки сортируются по дате создания в обратном порядке.
Пример кода на РНР:
// set vars
$api_url = 'https://skyauto.me/api/';
$secret = 'PASTE_YOUR_SECRET_HERE';
$method = 'lists/get';
$params = array('vk_group_id' => 12345678);
// compose hash
$params['hash'] = GetAutopilotHash($params, $secret);
// send request
$json_result = skyRequest($api_url.$method,$params);
// decode json to array
$result_array = json_decode($json_result,true);
// show result on page
echo '<pre>'.print_r($result_array, true).'</pre>';
Подписать игрока на список
Метод: players/subscribe
Доступные параметры:
vk_group_id
— ID сообщества в ВК;list_id
— ID списка в Автопилоте. Поддерживаются только события «Добавлен в список подписчиков».vk_user_id
— ID игрока (пользователя ВКонтакте), которого нужно добавить в список.- Кроме этих параметров можно добавлять также любые другие. Например UTM метки. Все переданные параметры будут доступны в командах.
Примечание: вызов метода запустит также команды, в которых добавлен указанный список как исполняемое событие. Не рекомендуем использовать для импорта (ибо лимиты ВК не учитываются). Лучше этот инструмент.
Пример кода на РНР:
// set vars
$api_url = 'https://skyauto.me/api/';
$secret = 'PASTE_YOUR_SECRET_HERE';
$method = 'players/subscribe';
$params = array('vk_group_id' => 12345678,'list_id' => 123,'vk_user_id' => 12345);
// compose hash
$params['hash'] = GetAutopilotHash($params, $secret);
// send request
$json_result = skyRequest($api_url.$method,$params);
// decode json to array
$result_array = json_decode($json_result,true);
// show result on page
echo '<pre>'.print_r($result_array, true).'</pre>';
…