- Регистрация
- 01.10.2015
- Сообщения
- 255
- Благодарностей
- 1 051
- Баллы
- 93
Всем привет 
Некоторое время назад появился публичный API ZennoBrowser, который даёт возможность автоматизировать ряд базовых и необходимых операций при работе с этим новым браузером.
API доступен не только для Zenno, можно пользоваться им как угодно, благо это обычный API.
Однако, так как большинство собравшихся тут работает с зеннкой, хотелось бы какое-то удобное прикладное решение для работы с API именно для связки ZP7 + ZB.
Именно поэтому для данной конкурсной работы подготовил полезные инструменты в виде:
Более того, если некоторые вещи пока доступны в кубиках, но не доступны в виде C#-кода. Это отдельная проблема, если у вас в планах встроить поддержку ZennoBrowser в какой-то из ваших шаблонов ZennoPoster, написанных в виде исключительно C#-кода (например, в Общем коде или в виде отдельной dll). Частично эту проблему может закрыть как раз таки использование такой простой C#-обёртки над ZB API.
Давайте по очереди кратко рассмотрим настройки шаблона, а потом и использование обёртки внутри него.
Устройство шаблона
Если вы ещё не сталкивались с API ZennoBrowser, для начала стоит ознакомиться с официальной справкой по нему:
docs.zennolab.com
Также там можно сразу увидеть, что для работы с API нужно выписать ключ в своём личном кабинете. К сожалению, на момент написания статьи данная опция доступна только для платных тарифов ZB.
Там же в справке есть разделы с сущностями, с которыми можно работать через API (профили, прокси, потоки и т.д.), а также описания конкретных действий (получить профили, запустить поток и т.п.).
Структура входных настроек управляющего шаблона построена согласно той же логике.
На первой вкладке указываем общие необходимые настройки для подключения к API, а также с какой сущностью работаем. На остальных вкладках указываем параметры работы с конкретными сущностями, а также выбираем конкретные операции.
А вот так выглядит вкладка настроек по профилям:
Именно во входных настройках для создания профилей выведена только часть презадаваемых параметров. Однако, в самой обёртке могут подхватываться все доступные параметры на момент публикации статьи. Поэтому, при необходимости использовать полного перечня параметров вам будет достаточно добавить соответствующие переменные проекта, и по желанию такие же входные настройки.
Один запуск шаблона – это 1 операция с конкретной сущностью.
Например:
Устройство обёртки
Несколько слов скажем об обёртке, кто соберётся ей пользоваться.
Так как в API нет ничего заурядного, обёртка представляет собой просто модуль общего кода в виде нескольких классов, которые можно вызывать из сниппетов в несколько строчек.
В классе ZennoBrowserConfig лежит конфиг для подключения к API
В классе ZennoBrowserClient реализованы все обращения к API.
Остальные классы – для разборки/сборки json-ов/параметров.
В общем коде есть ещё один класс ZbApiManager, отвечающий за связь входных настроек (и переменных проекта, соотвтетственно) и этой обёртки.
Он чуть поинтереснее, плюс предоставляет возможность вызывать конкретные операции над сущностями API в одну строчку (через использование фасадных методов). А для указания параметров используются те же самые переменные проекта.
Собственно, с помощью обращения к методам этого класса проще всего пользоваться обёрткой. Так что если тащить к себе в шаблоны, то имеет смысл сразу с ZbApiManager.
Ну и сниппеты вызовов из управляющего шаблона – тоже.
Именно для этого я их там и разместил в виде отдельных блоков со сниппетами вызовов – чтобы можно было и понять как это использовать, и протестировать максимально просто.
Прочие особенности
В шаблоне и сниппетах есть действия по импорту и экспорту кук, однако замечу, что для хранения и загрузки именно в этом шаблоне используются просто переменные проекта. Если вам нужно выгружать/скачивать куки с файла/облака/БД – вашимдомашним заданием будет просто добавить соответствующий код в обёртку или класс ZbApiManager. Благо, сделать это несложно как по примерам на форуме, так и с помощью условного чатгпт, даже если с кодом вы особо дел не имели. Если же всё-таки будут проблемы – спрашивайте в теме, в случае чего разберёмся вместе.
Некоторые другие нюансы и особенности, а также более наглядный обзор инструментов – доступны в видео-формате.

Некоторое время назад появился публичный API ZennoBrowser, который даёт возможность автоматизировать ряд базовых и необходимых операций при работе с этим новым браузером.
API доступен не только для Zenno, можно пользоваться им как угодно, благо это обычный API.
Однако, так как большинство собравшихся тут работает с зеннкой, хотелось бы какое-то удобное прикладное решение для работы с API именно для связки ZP7 + ZB.
Именно поэтому для данной конкурсной работы подготовил полезные инструменты в виде:
- управляющего шаблона для связки ZB API и ZennoPoster 7
- C#-обёртки над ZB API, которую можно использовать в любых своих обычных шаблонов для ZennoPoster
Более того, если некоторые вещи пока доступны в кубиках, но не доступны в виде C#-кода. Это отдельная проблема, если у вас в планах встроить поддержку ZennoBrowser в какой-то из ваших шаблонов ZennoPoster, написанных в виде исключительно C#-кода (например, в Общем коде или в виде отдельной dll). Частично эту проблему может закрыть как раз таки использование такой простой C#-обёртки над ZB API.
Давайте по очереди кратко рассмотрим настройки шаблона, а потом и использование обёртки внутри него.
Устройство шаблона
Если вы ещё не сталкивались с API ZennoBrowser, для начала стоит ознакомиться с официальной справкой по нему:
Начало работы с ZennoBrowser API | Документация ZennoLab
Узнайте, как получить API-токен и выполнить первые запросы к ZennoBrowser Public API — подробное руководство по ZennoBrowser Public API. Подробные инструкции, примеры использования и руководство по настройке
Также там можно сразу увидеть, что для работы с API нужно выписать ключ в своём личном кабинете. К сожалению, на момент написания статьи данная опция доступна только для платных тарифов ZB.
Там же в справке есть разделы с сущностями, с которыми можно работать через API (профили, прокси, потоки и т.д.), а также описания конкретных действий (получить профили, запустить поток и т.п.).
Структура входных настроек управляющего шаблона построена согласно той же логике.
На первой вкладке указываем общие необходимые настройки для подключения к API, а также с какой сущностью работаем. На остальных вкладках указываем параметры работы с конкретными сущностями, а также выбираем конкретные операции.
А вот так выглядит вкладка настроек по профилям:
Именно во входных настройках для создания профилей выведена только часть презадаваемых параметров. Однако, в самой обёртке могут подхватываться все доступные параметры на момент публикации статьи. Поэтому, при необходимости использовать полного перечня параметров вам будет достаточно добавить соответствующие переменные проекта, и по желанию такие же входные настройки.
Один запуск шаблона – это 1 операция с конкретной сущностью.
Например:
- запустить N потоков с такими-то профилями
- получить список ID всех профилей
- удалить все прокси из папки N
Устройство обёртки
Несколько слов скажем об обёртке, кто соберётся ей пользоваться.
Так как в API нет ничего заурядного, обёртка представляет собой просто модуль общего кода в виде нескольких классов, которые можно вызывать из сниппетов в несколько строчек.
В классе ZennoBrowserConfig лежит конфиг для подключения к API
В классе ZennoBrowserClient реализованы все обращения к API.
Остальные классы – для разборки/сборки json-ов/параметров.
В общем коде есть ещё один класс ZbApiManager, отвечающий за связь входных настроек (и переменных проекта, соотвтетственно) и этой обёртки.
Он чуть поинтереснее, плюс предоставляет возможность вызывать конкретные операции над сущностями API в одну строчку (через использование фасадных методов). А для указания параметров используются те же самые переменные проекта.
Собственно, с помощью обращения к методам этого класса проще всего пользоваться обёрткой. Так что если тащить к себе в шаблоны, то имеет смысл сразу с ZbApiManager.
Ну и сниппеты вызовов из управляющего шаблона – тоже.
Именно для этого я их там и разместил в виде отдельных блоков со сниппетами вызовов – чтобы можно было и понять как это использовать, и протестировать максимально просто.
Прочие особенности
В шаблоне и сниппетах есть действия по импорту и экспорту кук, однако замечу, что для хранения и загрузки именно в этом шаблоне используются просто переменные проекта. Если вам нужно выгружать/скачивать куки с файла/облака/БД – вашим
Некоторые другие нюансы и особенности, а также более наглядный обзор инструментов – доступны в видео-формате.

Вложения
-
43,6 КБ Просмотры: 11
Последнее редактирование модератором:

