Имеется ли API у сервиса DriveLink? / Разное / DriveLink, автоматическая проверка ссылок и заявок в SAPE, LinkFeed, SetLinks и Вне бирж

Вопросы и ответы

/  Разное  /  Имеется ли API у сервиса DriveLink?

XML-RPC интерфейс сервиса DriveLink доступен по адресу http://api.drivelink.ru/. Обращаться необходимо на 80-й порт, а «тело» XML-запроса размещать в «POST_DATA». См. также реализации XMLRPC для различных языков программирования. Обратите внимание! Все строковые данные при работе с интерфейсом указываются и возращаются в кодировке UTF-8.

Внимание! В данный момент API DriveLink находится в режиме бета-тестирования. Будьте осторожны и предельно внимательны при работе через интерфейс XMLRPC.

Оглавление

drivelink.logindrivelink.get_yandex_updatesdrivelink.get_currenciesdrivelink.get_brokersdrivelink.get_parametersdrivelink.get_accountsdrivelink.get_itemsdrivelink.get_filtersdrivelink.get_presetsdrivelink.get_items_filtersdrivelink.get_historydrivelink.get_user_statdrivelink.get_referal_statdrivelink.get_money_statdrivelink.add_accountdrivelink.change_accountdrivelink.delete_accountdrivelink.refresh_accountdrivelink.add_filter_by_presetdrivelink.add_filterdrivelink.change_filterdrivelink.delete_filterdrivelink.enable_items_filtersdrivelink.disable_items_filtersdrivelink.start_items_filtersdrivelink.set_history_actions

1. Функции работы с пользователем

(array) drivelink.login((string) login, (string) password [, (bool) is_md5]) — авторизация в системе, необходимо вызывать в начале каждой сессии. Далее при каждом следующем запросе нужно передавать все вернувшиеся cookie. Если аргумент is_md5 установлен в истину, то в password должен быть хэш MD5 от вашего пароля. В противном случае password должен содержать пароль пользователя в открытом виде. Если авторизация по хэшу пароля не работает, вам необходимо авторизоваться 1 раз на сервисе через веб-интерфейс (в дальнейшем данную процедуру повторять не придется). Результатом успешного выполнения функции является массив, содержащий информацию о пользователе:

  • id, идентификатор пользователя;
  • id_currency, идентификатор предпочитаемой валюты (0 — условные единицы с курсом, заданным по полю own_currency_value);
  • login, логин пользователя;
  • email, адрес электронной почты;
  • name, имя пользователя;
  • balance, текущий баланс в рублях;
  • pay_balance, баланс на выплату в рублях;
  • own_currency_value, курс условных единиц;
  • discount, скидка пользователя в %.

2. Функции получения данных

(array) drivelink.get_yandex_updates((timestamp) date_from [, (timestamp) date_to, (string) type]) — получение списка апдейтов поисковой базы и / или тИЦ Яндекса за выбранный период. Результатирующий массив состоит из элементов следующей структуры:

  • id, идентификатор записи в базе данных;
  • detection_date, дата и время обнаружения апдейта (timestamp);
  • index_date, дата и время индекса (timestamp);
  • type, типа апдейта (serp или cy).

(array) drivelink.get_currencies() — список поддерживаемых системой валют и их курсы. Функция возвращает массив элементов следующей структуры:

  • id, идентификатор валюты в системе, например, «RUB»;
  • name, название валюты по-русски;
  • value, курс валюты (сколько дают рублей за 1 единицу).

Внимание! Основной валютой в системе являются рубли, т.е. все данные в API отдаются в рублях.

(array) drivelink.get_brokers() — список поддерживаемых системой бирж ссылок. Функция возвращает массив элементов следующей структуры:

  • id, идентификатор биржи;
  • name, официальное название биржи;
  • site_url, адрес сайта.

(array) drivelink.get_parameters([(array) design_for]) — список поддерживаемых системой параметров. В качестве единственного возможного параметра выступает массив, указывающий на вид параметров, которые необходимо вернуть (webmaster_ok, optimizer_ok, webmaster_wait, optimizer_wait, optimizer_buy). Функция возвращает массив элементов следующей структуры:

  • id, идентификатор параметра;
  • design_for, массив, указывающий на вид фильтров, в которых может использоваться параметр (webmaster_ok, optimizer_ok, webmaster_wait, optimizer_wait, optimizer_buy);
  • name, название параметра;
  • description, описание параметра;
  • arguments, массив аргументов параметра;
  • price, стоимость проверки одной ссылки по данному параметру, в рублях. При покупке ссылок не используется.

(array) drivelink.get_accounts([(array) id_brokers]) — возвращается список аккаунтов ссылочных бирж. В качестве единственного возможного параметра выступает массив идентификаторов бирж ссылок, аккаунты которых требуется получить. Функция возвращает массив элементов следующей структуры:

  • id, идентификатор аккаунта;
  • id_broker, идентификатор биржи, к которой относится аккаунт;
  • create_date, дата добавления аккаунта в систему;
  • update_date, дата последнего обновления данных по аккаунту;
  • login, логин пользователя в ссылочной бирже;
  • status, статус аккаунта (возможные значения ok, wait, fail, process).

(array) drivelink.get_items((int) id_account) — вовзращается список элементов заданного аккаунта (проекты, урлы и площадки). Функция возвращает массив элементов следующей структуры:

  • id, идентификатор элемента;
  • id_parent, идентификатор родительского элемента (если нет, то 0);
  • broker_id, идентификатор элемента в бирже ссылок;
  • broker_name, название элемента в бирже ссылок;
  • broker_url, адрес элемента в бирже ссылок;
  • broker_count, количество ссылок в элементе (если неизвестно, то 0);
  • type, типа элемента (site, url или project);
  • last_check_date, дата последней проверки в системе по данному элементеу.

(array) drivelink.get_filters([(array) design_for]) — список имеющихся в системе фильтров. В качестве единственного возможного параметра выступает массив, указывающий на вид фильтров, которые необходимо вернуть (webmaster_ok, optimizer_ok, webmaster_wait, optimizer_wait, optimizer_buy). Функция возвращает массив элементов следующей структуры:

  • id, идентификатор фильтра;
  • name, название фильтра;
  • design_for, вид фильтра (webmaster_ok, optimizer_ok, webmaster_wait, optimizer_buy или optimizer_wait);
  • logic_condition, логическое условие фильтра (and, or);
  • parameters, массив идентификаторов используемых параметров и их аргументов;
  • efficiency, эффективность работы фильтра в процентах (если -1, то данных нет);
  • hidden_params, скрыты ли параметры фильтра (если да, то 1 иначе 0);
  • not_resell, запрещены ли продажа и дарение фильтра (если да, то 1 иначе 0).

(array) drivelink.get_presets([(array) design_for]) — список имеющихся в системе пресетов (сценариев) для фильтров. В качестве единственного возможного параметра выступает массив, указывающий на вид сценариев, которые необходимо вернуть (webmaster_ok, optimizer_ok, webmaster_wait, optimizer_wait, optimizer_buy). Функция возвращает массив элементов следующей структуры:

  • id, идентификатор сценария;
  • name, название сценария;
  • design_for, вид сценария (webmaster_ok, optimizer_ok, webmaster_wait, optimizer_buy или optimizer_wait);
  • logic_condition, логическое условие фильтра (and, or);
  • parameters, массив идентификаторов используемых параметров и их аргументов.

(array) drivelink.get_items_filters((array) id_items) — список используемых фильтров для заданного элемента / элементов. Функция возвращает массив следующей структуры:

  • id_item, идентификатор элемента;
  • id_filter, идентификатор фильтра;
  • last_check_date, дата последней проверки элемента по фильтру (timestamp);
  • action, массив действий по фильтру (del, bl, gbl или ничего, если полуавтомат);
  • period, период проверки (every_3_hours, every_6_hours, every_12_hours, every_day, every_week, every_week_2, every_week_3, every_month, if_serp_update, if_cy_update, if_yaca_update, never);
  • is_emulate, полуавтоматический режим (0 или 1);
  • only_new, флаг проверки только новых ссылок или заявок (0 или 1);
  • not_confirm, не подтверждать заявки (0 или 1);
  • status, состояние фильтра по данному элементу (ok, checklinks, manual);
  • onlyonefromsite, флаг покупки не более одной ссылки с сайта (0 или 1);
  • budget, общий бюджет;
  • links_limit, дневная квота (шт).

(array) drivelink.get_history((string) check_owner, (string) check_type, (timestamp) date_from [, (timestamp) date_to, (int) id_filter, (array) action, (array) result_status, (int) id_account, (int) id_item, (int) id_from]) — получение истории проверок и покупок за определенный период, элементам и фильтрам. Последний аргумент id_from в функции позволяет «листать» данные постранично (укажите в аргументе последний id предыдущей страницы и вы получите следующую страницу). Функция возвращает массив с максимальной длиной 1000 и со следующей структурой:

  • id, идентификатор записи в истории;
  • id_filter, массив идентификаторов фильтров, по которым выполнялась проверка или покупка ссылок.
  • id_account, идентификатор аккаунта биржи;
  • id_item, идентификатор элемента биржи;
  • check_date, дата действия;
  • check_owner, для кого выполнялась проверка (optimizer, webmaster);
  • check_type, что делалось — проверялись заявки (wait) или ссылки (ok), покупались ссылки (buy);
  • check_price, массив стоимостей проверки или покупки в рублях (по каждому из фильтров);
  • link_id, идентификатор ссылки в бирже;
  • link_donor, донор ссылки;
  • link_acceptor, акцептор ссылки;
  • link_anchor, текст ссылки;
  • link_price, стоимость ссылки в рублях по бирже;
  • link_date_placed, дата размещения ссылки (timestamp);
  • action, массив действий (по каждому из фильтров);
  • is_emulate, массив флагов полуавтоматического режима (по каждому из фильтров);
  • result_message, массив сообщений (по каждому из фильтров);
  • result_status, массив статусов позиции (по каждому из фильтров).

(array) drivelink.get_user_stat((timestamp) date_from, (timestamp) date_to) — ежедневная статистика проверок за указанный период. Возвращает массив элементов следующей структуры:

  • create_date, дата среза;
  • cnt_links_all_wm, количество проверенных ссылок WM;
  • cnt_links_all_seo, количество проверенных ссылок SEO;
  • cnt_links_deleted_wm, количество удаленных ссылок WM;
  • cnt_links_deleted_seo, количество удаленных ссылок SEO;
  • cnt_links_accepted_wm, количество принятых заявок WM;
  • cnt_links_accepted_seo, количество принятых заявок SEO;
  • cnt_links_declined_wm, количество отказанных заявок WM;
  • cnt_links_declined_seo, количество отказанных заявок SEO;
  • sum_links_all_wm, стоимость проверенных ссылок WM;
  • sum_links_all_seo, стоимость проверенных ссылок SEO;
  • sum_links_deleted_wm, стоимость удаленных ссылок WM;
  • sum_links_deleted_seo, стоимость удаленных ссылок SEO;
  • sum_links_accepted_wm, стоимость принятых заявок WM;
  • sum_links_accepted_seo, стоимость принятых заявок SEO;
  • sum_links_declined_wm, стоимость отказанных заявок WM;
  • sum_links_declined_seo, стоимость отказанных заявок SEO;
  • user_sum_wm, потрачено как WM;
  • user_sum_seo, потрачено как SEO;
  • partner_sum, заработано сегодня;
  • sum_filters_sale, заработано на продаже фильтров;
  • sum_filters_buy, потрачено на покупку фильтров;
  • cnt_links_buyed_seo, количество купленных ссылок SEO;
  • sum_links_buyed_seo, стоимость купленных ссылок SEO.

(array) drivelink.get_referal_stat((timestamp) date_from, (timestamp) date_to [, (int) id_from]) — статистика переходов рефералов пользователей. Последний аргумент id_from в функции позволяет «листать» данные постранично (укажите в аргументе последний id предыдущей страницы и вы получите следующую страницу). Функция возвращает массив с максимальной длиной 1000 и со следующей структурой:

  • id, идентификатор записи;
  • ref_date, дата переход на сайт;
  • ref_ip, ip-адрес посетителя;
  • domain, домен, с которого был осуществлен переход.

(array) drivelink.get_money_stat((timestamp) date_from, (timestamp) date_to [, (string) initiator, (string) purpose, (int) id_item, (int) id_from]) — финансовая статистика пользователя. В качестве входных параметров задаются диапазон дат, инициатор транзакции, назначение транзакции, идентификатор элемента аккаунта. Последний аргумент id_from в функции позволяет «листать» данные постранично (укажите в аргументе последний id предыдущей страницы и вы получите следующую страницу). Функция возвращает массив с максимальной длиной 1000 и со следующей структурой:

  • id, идентификатор транзакции;
  • id_item, идентификатор элемента аккаунта биржи (если нет, то 0);
  • create_date, дата транзакции;
  • initiator, инициатор транзакции (admin, user, system);
  • purpose, назначение транзакции (links, balance, partner, gift, filter);
  • value, сумма в рублях.
InitiatorPurposeValueТип транзакции
userbalanceположительноепополнение баланса пользователем
adminbalanceположительнаяпополнение баланса администратором
systempartnerположительнаяпополнение баланса системой по партнерке
userbalanceотрицательнаявывод средств пользователем
systemlinksотрицательнаятрата средств на проверку ссылок системой
systembuyотрицательнаятрата средств на закупку ссылок системой
systemnowaitsотрицательнаясписание за отсутствие заявок
adminbalanceотрицательнаяуменьшение баланса администратором
userfilterотрицательнаяпокупка фильтра пользователем
userfilterположительнаяпродажа фильтра пользователем

3. Функции изменения данных

(int) drivelink.add_account((string) id_broker, (string) login, (string) password) — добавление аккаунта биржи в систему. В качестве пароля password можно указывать как пароль в открытом виде, так и хэш MD5 от него. В случае успеха функция возвращает идентификатор добавленного аккаунта.

(bool) drivelink.change_account((int) id_account, (string) new_password) — изменение пароля для заданного аккаунта биржи. При изменении проверяется корректность нового значения. В случае успеха возвращается «true», в противном случае «false». Пароль можно указать в открытом виде или в виде хэша MD5.

(bool) drivelink.delete_account((int) id_account, (string) password) — удаление заданного аккаунта биржи. При удалении проверяется корректность пароля аккаунта. В случае успеха возвращается «true», в противном случае «false». Пароль можно указать в открытом виде или в виде хэша MD5.

(bool) drivelink.refresh_account((int) id_account) — запрос на обновление данных (списка элементов) по заданному аккаунту биржи. Возвращает «true» или «false» в зависимости от успешности постановки в очередь на обновление.

(int) drivelink.add_filter_by_preset((int) id_preset [, (string) name]) — создание нового фильтра на базе пресета (сценария). Если name не указано или пустое, то будет использовано название пресета. Функция в случае успеха возвращает идентификатор нового фильтра.

(int) drivelink.add_filter((string) name, (string) design_for, (string) logic_condition, (array) parameters) — добавление нового фильтра в систему. В качестве входных параметров указываются имя фильтра, его предназначение (webmaster_ok, optimizer_ok, webmaster_wait, optimizer_wait или optimizer_buy), логическое условие (or или and) и массив parameters (содержит идентификаторы параметров и массивы их аргументов). Если аргументов у параметра нет, необходимо вместо пустого массива передавать значение NULL. В случае успеха возвращается идентификатор нового фильтра.

(bool) drivelink.change_filter((int) id_filter, (hash) properties) — изменение свойств фильтра. Ассоциативный массив properties может содержать ключи name, logic_condition (or или and) и parameters (описывает идентификаторы параметров и их аргументы). В случае успеха возвращается «true», в случае неудачи «false».

(bool) drivelink.delete_filter((int) id_filter) — удаление фильтра из системы. В случае успеха возвращается «true», в случае неудачи «false». Удалить используемый для проверок фильтр невозможно.

(bool) drivelink.enable_items_filters((array) id_items, (array) id_filters, (hash) options) — включить использование указанных фильтров для заданных элементов. Третий параметр — ассоциативный массив options содержит ряд дополнительных сведений:

для проверки заявок и ссылок:

  • action, массив действий по фильтру (del, bl, gbl или ничего, если полуавтомат);
  • period, период проверки (every_3_hours, every_6_hours, every_12_hours, every_day, every_week, every_week_2, every_week_3, every_month, if_serp_update, if_cy_update, if_yaca_update, never);
  • is_emulate, полуавтоматический режим (0 или 1);
  • only_new, флаг проверки только новых ссылок или заявок (0 или 1);
  • not_confirm, не подтверждать заявки (0 или 1).

для закупки ссылок:

  • period, период проверки (every_3_hours, every_6_hours, every_12_hours, every_day, every_week, every_week_2, every_week_3, every_month, if_serp_update, if_cy_update, if_yaca_update, never);
  • onlyonefromsite, флаг покупки не более одной ссылки с сайта (0 или 1);
  • budget, общий бюджет;
  • links_limit, дневная квота (шт);
  • is_emulate, полуавтоматический режим (0 или 1).

Допускается одновременное включение фильтров для покупки и проверки. Для этого нужно перечислить все значения options. Поля period и is_emulate, в этом случае, будут общими. Если указанные фильтры уже включены, то их настройки по полю options будут обновлены. В случае успеха возвращается массив пар (id элементов и id фильтров), которые были назначены, в случае неудачи «false».

(bool) drivelink.disable_items_filters((array) id_items [, (array) id_filters]) — отключить использование указанных фильтров (если не указаны, то отключатся все фильтры) для заданных элементов. В случае успеха возвращается «true», в случае неудачи «false».

(array) drivelink.start_items_filters((array) id_items [, (array)id_filters]) — запустить вручную проверку по указанным фильтрам (если не указаны, то запуск произойдет по всем фильтрам) для заданных элементов. Запустить процесс покупки ссылок вручную при помощи данной функции невозможно. В случае успеха возвращается массив успешно поставленных в очередь на проверку элементов.

(array) drivelink.set_history_actions((array) id_history, (array) actions) — выполнить действия с «полуавтоматическими» позициями истории проверок и покупок. Параметр id_history представляет из себя список идентификаторов позиций в истории (не более 1000 позиций за 1 раз), а параметр actions является массивом действий (bl, gbl, del, accept). Функция возвращает массив результатов.

4. Коды ошибок

Каждая из функций интерфейса в случае неудачи может возвращать те или иные коды ошибок. Ниже мы приводим расшифровку возможных кодов ошибок:

КодСообщениеПримечание
97Service is temporarily inaccessibleСервис временно не доступен, ведутся технические работы
98Method not foundЗапрашиваемый метод не найден
99Unknow errorПроизошла неизвестная ошибка
100Login failedНеправильный логин или пароль
101Please loginТребуется повторная авторизация
102User not activatedВы пытаетесь авторизоваться под учетной записью, которая еще не активирована
103Quantity of attempts of authentification is exceededКоличество попыток авторизации исчерпано
104Login too longСлишком длинное значение у логина
105Bad data in login fieldНекорректное значение у логина
106Bad data in email fieldНекорректное значение электронной почты
107Email already existsУказанная электронная почта уже используется
108Login already existsУказанный логин уже используется
109Bad currency IDНекорректный идентификатор валюты
110Bad own currency valueНекорректный курс условной единицы
111Empty data in fieldsПустые значения полей
112Bad password valueКороткий пароль (минимум 6 символов) или его значение совпадает с логином
200Invalid type of yandex updateНекорректный или неподдерживаемый тип апдейта Яндекса
201Invalid design_for valueНекорректный тип предназначения
202Invalid broker idНекорректный идентификатор биржи ссылок
203Invalid account idНекорректный или несуществующий идентификатор аккаунта
204Invalid filter idНекорректный или несуществующий идентификатор фильтра
205Invalid item idНекорректный или несуществующий идентификатор элемента
206Invalid history check ownerНекорректный владелец данных в истории
207Invalid history check typeНекорректный тип данных в истории
208Invalid history actionНекорректное действие в истории проверок
209Invalid history result statusНекорректный статус проверки в истории
210Bad purpose valueНекорректное значение у назначения
211Bad initiator valueНекорректное значение у инициатора
212Invalid preset idНекорректный или несуществующий идентификатор сценария
300Invalid account idНекорректный идентификатор аккаунта биржи
301Bad broker idНекорректный идентификатор биржи
302Invalid account login or password or quantity of attempts of broker authentification is exceededНеправильный логин или пароль аккаунта биржи или количество попыток авторизации на бирже исчерпано
303Invalid preset idНекорректный или несуществующий идентификатор сценария
304Bad history idНекорректный идентификатор истории
305Bad actions arrayНекорректный массив действий
306Empty names not allowedПустые названия запрещены
307Bad design_for valueНекорректное значение design_for
308Bad logic_condition valueНекорректное значение логического условия
309Bad filter propertiesНекорректный свойства фильтра
310Bad filter parametersНекорретные параметры фильтра
311Invalid filter idНекорректный или несуществующий идентификатор фильтра
312Invalid item idНекорректный или несуществующий идентификатор элемента
313Invalid items and filters optionsНекорректные свойства назначения фильтра
314Account already addedДанный аккаунт уже добавлен
315Use forbidden parametersИспользуется запрещенный параметр
316Cannot delete used filterНельзя удалить фильтр, который используется

Для отправки сообщений вы должны быть авторизованы.