Скриптинг FlipLink: передаём вывод CLI в jq
Пишешь скрипты для FlipLink CLI? Передавай вывод --json в jq, чтобы извлекать ID и ссылки, фильтровать, связывать команды и строить автоматизацию.
Опубликовано 21 июня 2026 г. · 6 min read
По умолчанию FlipLink CLI выводит понятные человеку таблицы. Это удобно, когда ты работаешь в терминале — но как только нужно что-то заскриптовать, на первый план выходят сырые, машиночитаемые данные. Именно это и даёт флаг --json, а в паре с jq ты можешь извлекать ID, вытаскивать ссылки для шаринга, фильтровать по статусу и связывать команды в полноценную автоматизацию.
Этот гайд — про скриптинг FlipLink CLI: как превратить несколько команд в небольшой надёжный конвейер. Если ты только знакомишься с инструментом, начни с Начало работы с FlipLink CLI, а потом возвращайся сюда. Полный набор команд описан в документации CLI.
Один флаг, который делает скриптинг возможным: --json
Почти каждая команда чтения или записи принимает --json. Добавь его — и CLI выведет сырой JSON в стандартный вывод вместо отформатированной таблицы:
fliplink flipbook list --json
Передай это напрямую в jq — и сможешь перестроить данные как угодно. Самая важная привычка при скриптинге: сначала изучи сырой вывод, чтобы точно знать имена полей до того, как обращаться к ним.
# See the full shape of a single item — keys, casing, everything
fliplink flipbook list --json | jq '.[0]'
В примерах ниже используются правдоподобные имена полей вроде .ID и .URL, но никогда не считай их само собой разумеющимися — регистр в названиях полей может отличаться. Запусти команду выше один раз, прочитай ключи и подгони свои пути jq под то, что видишь на самом деле.
Извлекаем только ID
Классический первый шаг: получить плоский список ID флипбуков, по которому можно пройтись в цикле.
fliplink flipbook list --json | jq '.[].ID'
jq проходит по массиву (.[]) и вытаскивает поле ID из каждого элемента. Оберни поле в -r (сырой вывод), когда нужны чистые строки без окружающих кавычек — именно это требуется, когда ты передаёшь значения в другую команду:
fliplink flipbook list --json | jq -r '.[].ID'
Собираем ссылки для шаринга в чистый список
Тот же приём работает для любого поля. Если в элементах списка есть URL, ты можешь извлечь сразу все ссылки для шаринга:
fliplink flipbook list --json | jq -r '.[].URL'
Нужен отчёт из двух колонок — названия и ссылки? Сформируй строку с разделителями-табуляциями для каждого элемента через интерполяцию строк в jq:
fliplink flipbook list --json \
| jq -r '.[] | "\(.Title)\t\(.URL)"'
И снова — сверь .Title и .URL со своим выводом --json, прежде чем им доверять. Если ключи отличаются, подставь правильные.
Фильтруем перед действием
select() в jq оставляет только те элементы, которые подходят под условие. Допустим, у каждого элемента есть флаг публикации, а тебе нужны только ID опубликованных флипбуков:
fliplink flipbook list --json \
| jq -r '.[] | select(.IsPublished == true) | .ID'
Изучи свой вывод, чтобы узнать реальное имя флага и его тип — это может быть булево значение, строка или поле статуса. Подгони выражение select() соответственно. Шаблон остаётся прежним: фильтруем массив, затем берём нужное поле.
Связываем команды: список, фильтр, затем действие
Вот где это становится по-настоящему полезным. Передай отфильтрованные ID в цикл оболочки и выполни вторую команду для каждого из них. В этом примере находим каждый флипбук, который ещё не опубликован, и публикуем его:
fliplink flipbook list --json \
| jq -r '.[] | select(.IsPublished == false) | .ID' \
| while read -r id; do
echo "Publishing $id..."
fliplink flipbook publish "$id"
done
Цикл while read -r id читает по одному ID на строку и вызывает fliplink flipbook publish для каждого. Поскольку jq -r убирает кавычки, $id — это чистое значение, готовое к передаче напрямую. Та же схема работает для любой команды действия — подставь set-expiry, share-link или delete.
Примечание: каждая показанная здесь команда — это реальная команда FlipLink CLI. Если тебе нужно действие, которого нет среди готовых команд, используй обходной путь
fliplink api(напримерfliplink api PUT /api/set-skin/<id> --data '{"SkinName":"Modern"}') — под капотом работает тот же REST API.
Попробуйте FlipLink бесплатно
Преобразуйте PDF за секунды. Без регистрации и кредитной карты — просто загрузите файл.
Drop your PDF here or click to browse
Макс. 40 МБ
На платных тарифах от $39 лимит вырастает до 150 MB.
Строим небольшой отчёт
Когда ты умеешь извлекать и фильтровать, быстрый отчёт о статусе — это всего одно дополнительное выражение jq. Посчитаем общее число флипбуков и сколько из них опубликовано:
fliplink flipbook list --json | jq '{
total: length,
published: ([.[] | select(.IsPublished == true)] | length)
}'
Это выведет компактную JSON-сводку, которую можно записать в лог, отправить по почте или опубликовать в канале. Предпочитаешь строку для человека?
fliplink flipbook list --json \
| jq -r '"Total: \(length) flipbooks"'
Пишем скрипты, которые знают, сработали они или нет
Конвейеру можно доверять, только если он реагирует на сбои. FlipLink CLI использует осмысленные коды выхода, так что твои скрипты могут ветвиться по ним:
0— успех1— ошибка запроса или HTTP (сеть, неверный ключ,401)2— ошибка приложения (API вернулResult: ERROR)
Проверь код выхода после команды и обработай каждый случай:
fliplink flipbook publish "$id"
status=$?
if [ "$status" -eq 0 ]; then
echo "Published $id"
elif [ "$status" -eq 2 ]; then
echo "Application error publishing $id (check the response)" >&2
else
echo "Request failed for $id (exit $status)" >&2
fi
Для скрипта с быстрым завершением добавь set -e в начало, чтобы весь запуск остановился на первой же ненулевой ошибке. Для устойчивого пакетного задания продолжай работу, но логируй сбои — ветвление по коду выхода выше как раз и помогает отличить “готово” от “готово с ошибками”.
Если ты пишешь скрипты в CI, а не на своём ноутбуке, задавай ключ через переменную окружения FLIPLINK_API_KEY, а не через локальный конфигурационный файл, и прочитай более подробный разбор в Автоматизация публикации флипбуков в CI/CD.
Ставим на расписание
Финальный шаг любой автоматизации: поставить её на расписание. Сохрани конвейер как скрипт, сделай его исполняемым и добавь запись в cron. Это запускает ночную публикацию с отчётом в 02:00:
# crontab -e
0 2 * * * FLIPLINK_API_KEY=your_key /home/you/scripts/nightly-publish.sh >> /var/log/fliplink.log 2>&1
Перенаправление и stdout, и stderr в файл лога (>> ... 2>&1) означает, что ветвления по коду выхода и отчёты jq сохраняются при каждом запуске — так что когда что-то ломается в 2 часа ночи, у тебя есть запись о том, что именно произошло.
Весь шаблон в одной строке
Каждый скрипт в этом гайде — одна и та же идея: --json, чтобы получить сырые данные → jq, чтобы извлечь или отфильтровать → цикл, чтобы действовать → коды выхода, чтобы проверить. Начни с изучения собственного вывода --json, чтобы имена полей были верными, собирай конвейер по одному этапу за раз — и за считаные минуты у тебя будет надёжная автоматизация FlipLink.
Дополнительное чтение
Готовы создать первый флипбук?
Превращай свои PDF в интерактивные флипбуки и документы. Начни с Lifetime Deal от FlipLink — пожизненный доступ всего от $39.
Платите один раз — пользуйтесь всегда
10, 50 или 100 флипбуков · Все 35 функций · Безлимитные домены
Без уровней. Без ограничений по функциям. Каждый код LTD открывает всё.
- Все функции открыты — без ограничений
- Коды суммируются — докупайте в любой момент
- Коды заменяемы — обменяйте старый на новый
- Неограниченные собственные домены (CNAME)
- Никаких регулярных платежей
По теме
Автоматическая публикация флипбуков в CI/CD с помощью FlipLink CLI
Автоматизируй публикацию флипбуков в любом CI/CD-пайплайне через FlipLink CLI: создание, публикация, получение URL и быстрый отказ по кодам возврата.
Массовое преобразование папки PDF во флипбуки
Массово преобразуй PDF во флипбук из целой папки одним shell-циклом через FlipLink CLI — собирай ссылки в CSV и пропускай битые файлы.
CLI, API или MCP во FlipLink: какую интеграцию выбрать?
CLI, API и MCP во FlipLink — сравни усилия, аудиторию и сценарии, а потом создай один флипбук тремя способами. Выбери подходящую интеграцию.