Массовое API. Документация.
При использовании API массового сбора нужно сначала создать проект, а после получить результат. Все проекты хранятся на сервисе в разделе https://word-keeper.ru/core к названиям приписывается маркер [API]. Если какие-то запросы не собрались, то лимиты по ним будут возвращены на ваш баланс.
Также обращаю ваше внимание, что сервер принимает только JSON кодированные данные методом POST (см пример, готовый скрипт в конце статьи).
Шаг 1. Создаем проект с ключевыми словами.
Создает новый проект с маркером [API] в системе на вашем аккаунте. Аналог инструмента "Проверка частотности с произв. операторами за месяц". Внимательно проверяйте фразы на правильность использования операторов wordstat. Иначе вылезет ошибка 500 и целый пакет фраз будет исключен из парсинга. За них лимиты будут возвращены. Проверить это вы сможете на странице "Статистика по лимитам"
* Формат ответа: JSON
* Метод: POST
https://word-keeper.ru/api/create_freqDiff
token - ваш токен в личном кабинете;
text - запрос [текст]: макс 1 000 фраз. Можно использовать операторы ( +, [ ], " ", ! ). Каждая фраза должна быть с новой строки.
geo - регион [число]: на данный момент поддерживается только один, например: 213.
name - название проекта [необязательно]: вы можете дать название проекту сами, либо название = 1 фраза для парсинга. Макс 250 символов
debug - режим отладки [для разрабов]: 1 - включает отладку. В этом режиме сервер возвращает ваш запрос, каким он его получил. Тем самым вы можете найти ошибки в своем запросе.
Пример правильно закодированного JSON запроса для отправки на сервер:
{"text":"шкафы купе на заказ","token":"demoapi","geo":213}
Пример JSON ответа от сервера (с комментариями):
JSON ответ закодирован:
{"code":20,"status":"ok","id":91986,"text":"Задание добавлено в очередь","words_add":1,"limit_cost":1,"limit_balance":842}
JSON раскодирован в array:
(
[code] => 20
[status] => ok
[id] => 91986 // ID проекта, который был создан. Он нам нужен.
[text] => Задание добавлено в очередь
[words_add] => 1 // Сколько фраз было добавлено в проект
[limit_cost] => 1 // Стоимость в лимитах
[limit_balance] => 842 // Ваш текущий баланс лимитов
)
Пример JSON ответа от сервера в режиме отладки:
JSON ответ закодирован:
{"code":22,"status":"debug","msg":"{\"text\":\"шкафы купе на заказ\",\"token\":\"demoapi\",\"geo\":213,\"debug\":1}"}
JSON раскодирован в array:
(
[code] => 22
[status] => debug
[msg] => {"text":"шкафы купе на заказ","token":"demoapi","geo":213,"debug":1}
)
Шаг 2. Получаем результат обработки
Получаем ответ от сервера. Три статуса проекта: очередь (queue), в работе (work), готов (ok). Массив данных в формате JSON.
* Формат ответа: JSON
* Метод: POST
https://word-keeper.ru/api/get_result
token - ваш токен в личном кабинете;
id - ID проекта [число]
Пример ответа (с комментариями), если проект еще в очереди / в работе:
Array
(
[code] => 10
[status] => queue // Если проект еще в очереди. Если в обработке будет статус: work
[msg] => Проект в очереди
)
Пример ответа, если проект уже готов:
Array
(
[results] => Array
(
[шкафы купе в спальню] => 11290
[шкафы купе +в гостиную] => 2745
[шкафы купе в !прихожую] => 24877
["шкафы на заказ"] => 5196
[стенки] => 301105
[билеты [из Питера в Москву]] => 236
[барные стойки на кухню] => 9800
)
[status] => ok
[error] => Ошибка 500! Проверьте правильность запросов // Появится, если в фразах ошибки (с операторами). Лимиты за них возвращаются.
)
Удаление проектов
Удаляем проект по его ID. Максимальное количество проектов: 40. Поэтому вы можете удалять их вручную на странице "Мои проекты", либо по апи.
* Формат ответа: JSON
* Метод: POST
https://word-keeper.ru/api/remove
token - ваш токен в личном кабинете;
id - ID проекта [число]
Пример ответа (с комментариями):
Array
(
[code] => 20
[status] => ok
[id] => 91986
[text] => Проект 91986 удален
[limit_return] => // Возврат лимитов происходит только в случае, если проект находится в очереди
)
Список всех проектов
Список всех ваших проектов (название и ID), которые были созданы в вашем аккаунте.
* Формат ответа: JSON
* Метод: POST
https://word-keeper.ru/api/all_cores
token - ваш токен в личном кабинете;
Пример ответа (с комментариями):
Array
(
[cores] => Array
(
[91983] => шкафы купе в спальню [API]
[91978] => шкаф купе [API]
[91977] => "шкаф" [API]
[91976] => "Памятники" [API]
)
[status] => ok
)
Пример скрипта на PHP. Готовый рабочий код
// Наши запросы для парсинга частотности. Можно подгружать из файла.
$post['text'] =
'шкафы купе в спальню
шкафы купе +в гостиную
шкафы купе в !прихожую
"шкафы на заказ"
стенки
билеты [из Питера в Москву]
барные стойки на кухню';
// Ваш токен в личном кабинете.
$post['token'] = "demoapi";
// Регион Wordstat, цифрой. Одно значение
$post['geo'] = "213";
// Создаем проект и отправляем в обработку
$new_core = curl_top($post, 'create_freqDiff');
// Если проект успешно создан, то идем дальше
if($new_core['status'] == 'ok')
{
// Получаем ID созданного проекта
$post['id'] = $new_core['id'];
// Зацикливаем опрос от сервиса каждые 10 сек. До 10 раз.
for($i=0;$i<=10;$i++)
{
// Ждем 10 сек. Не делайте слишком часто опросы сервера. Оптимально 5-15 сек., в зависимости от фраз
sleep(10);
// Запрашиваем данные по проекту
$words = curl_top($post, 'get_result');
// Если обработка завершена, то выходим из цикла
if($words['status'] == 'ok')
{
// Удаляем проект по ID. Можно и не удалять. Но лимит 40 проектов.
curl_top($post, 'remove');
break;
}
}
// Делаем, что хотим. В данном случае, просто выводим результат.
print_r($words['results']);
}
// Функция для отправки CURL запроса методом POST
function curl_top($post, $method)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://word-keeper.ru/api/' . $method);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_POST,1); //Будем отправлять POST запрос
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($post, JSON_UNESCAPED_UNICODE)); // Кодируем в JSON наш запрос
$res = curl_exec($curl);
curl_close($curl);
return json_decode($res, true); //Декодируем JSON в ответе и возвращаем
}
# Примечание:
# Все созданные проекты вы можете увидеть на странице https://word-keeper.ru/core
# Не забывайте удалять проекты с помощью команды /api/remove, либо вручную на сервисе.
# Получить список всех проектов и их id можно по команде /api/all_cores
