Сегодня я расскажу о библиотеке для интеграции с API биржой микрозадач unu.im
Введение
Я не использую биржи для заработка. Мне нравится идея, в которой я плачу людям копейку, а они делают что-то незамысловатое. Чаще всего такие сервисы ориентированны на накрутку активности в социальных сетях, сайтах и других интернет ресурсах.
Кто то регает кучу рефералов на сервисах с партнеркой, в надежде получить лида и конверсию с него, но это все не про меня, я использовал этот сервис в качестве А/Б тестов своего проекта.
Как работает UNU?
- Регистрируетесь на сайте
- Добавляете задание и оплачиваете необходимое количество работ
- Получаете результат и проверяете выполненные работы
Доступные типы задач
- Наполнение сайтов: комментарии, отзывы, форумы, доски объявлений
- Продвижение в социальных сетях: подписчики в группы, лайки, репосты
- Продвижение приложений: установки и действия
- Любые произвольные задачи, которые нужно выполнять на регулярной основе
Установка
pip install unu_api
Зависимости
На данный момент библиотека зависит только от библиотеки requests
Использование
Получите токен в личном кабинете на сайте https://unu.im/api-info и инициализируйте класс для работы с API
from unu_api import Api u = Api(token="ВАШ_ТОКЕН") request = u.get_balance()
Тестирование
Протестировать библиотеку можно запустив команду pytest указав в переменной окружения ваш API_KEY
API_KEY=ВАШ_ТОКЕН pytest
Доступные методы
Реализован полный набор методов доступный в официальном API
- get_balance — Возвращает количество доступных средств
- get_folders — Возвращает все созданные папки с задачами
- create_folder — Создаёт новую папку
- move_task — Перемещает задачу в указанную папку
- get_tasks — Возвращает существующие задачи
- get_reports — Возвращает отчёты по определённой задаче или все существующие отчёты
- approve_report — Принимает (оплачивает) отчёт по заданию
- reject_report — Отклоняет отчёт по заданию
- get_expenses — Возврашает сумму израсходованных средств
- add_task — Создаёт новую задачу
- task_limit_add — Устанавливает лимит (добавляет выполнения) определённой задачи
- edit_task — Редактирует существующую задачу
- get_tariffs — Возвращает все доступные тарифы
- task_pause — Приостанавливает выполнение задачи
- task_play — Активирует выполнение задачи
- get_minter_wallet — Возвращает адрес Minter-кошелька для пополнения баланса аккаунта
Кастомные исключения
Мне пришлось реализовать кастомный набор ошибок для удобства разработки.
- AuthError — Исключение при отсутствие токена
- BalanceError — Исключения при отрицательном балансе
- RequestError — Исключение для неуспешных запросов к API
- JsonParsingError — Исключение для ошибок декодирования Json
- UnknowError — Для неизвестных ошибок
Устранение неполадок
Время от времени могут переставать работать определенные методы. Вместо json будет в ответ прилетать лог ошибки php, обычно я пишу в поддержку на сайте и разработчики фиксят эти баги. Для этого кейса я ввел кастомное исключение JsonParsingError.
Ссылки
Сайт биржи — https://unu.im
Ссылка на GitHub — https://github.com/r4hx/unu_api/
Ссылка на PyPi — https://pypi.org/project/unu_api/