В iOS нет встроенного сервиса сокращения URL, а меню Поделиться в Safari копирует полный адрес. Решение - приложение Быстрые команды: команда из четырёх действий берёт любой URL, который вы сейчас просматриваете, отправляет его в API сервиса сокращения и помещает короткую ссылку в буфер обмена. После трёхминутной настройки это два касания из любого приложения, откуда можно поделиться ссылкой.
Это мобильная версия статьи как сократить URL, где рассмотрен путь через компьютер и панель управления. Если вам нужно то же самое внутри приложения, которое вы разрабатываете, а не на собственном телефоне, инструкции для JavaScript и Python описывают тот же вызов API в коде.
Перед началом нужна только одна вещь - API-ключ. Подойдёт любой сервис сокращения с REST API; названия полей ниже приведены для Elido, а обзор бесплатного API сервиса сокращения URL документирует форму запроса.
Создайте команду: четыре действия
Откройте Быстрые команды, нажмите на плюс, затем добавьте эти действия по порядку.
1. Приём URL. На панели сведений команды (кнопка информации) включите Show in Share Sheet, затем установите принимаемый тип данных только на URL. Последнее важно: если оставить вариант Anything, команда будет появляться даже при попытке поделиться фото, а это лишний шум.
2. Получить содержимое URL. Укажите https://api.elido.app/v1/links и разверните стрелку, чтобы увидеть параметры:
- Метод: POST
- Заголовки:
Authorization=Bearer YOUR_API_KEY, иContent-Type=application/json - Тело запроса: JSON, с одним полем
destination_url, значение которого - переменная Shortcut Input
3. Получить значение словаря. Ключ short_url - из результата предыдущего действия. Ответ уже разобран, так что отдельный шаг для разбора JSON не нужен.
4. Скопировать в буфер обмена. Добавьте после этого действие Показать уведомление, если хотите подтверждение; без него команда выполняется беззвучно, и вы никогда не уверены до конца, сработала ли она.
Дайте ей короткое название. Именно это название вы будете нажимать в меню Поделиться, и именно его вы произнесёте для Siri.
Нужен ключ, на который её настроить? Создайте его на бесплатном тарифе, вставьте в поле заголовка - и команда заработает с первого запуска.
Как этим пользоваться
Откройте страницу в Safari, нажмите Поделиться, прокрутите до своей команды, нажмите на неё. Короткая ссылка окажется в буфере обмена - вставьте её туда, куда собирались.
Это работает из любого места, где есть меню Поделиться, а это большая часть iOS: Почта, Заметки, App Store, Фото со ссылкой на общий альбом, сторонние браузеры, большинство приложений для чтения. Руководство пользователя Быстрых команд от Apple описывает детали интеграции с меню Поделиться, а саму команду также можно запустить через схему URL, если нужно вызвать её из другой автоматизации.
Две доработки стоит добавить, когда базовая версия уже работает:
- Автоматические UTM-метки. Перед вызовом API вставьте действие Текст, которое дописывает
?utm_source=…&utm_medium=…к Shortcut Input, и передавайте этот текст какdestination_url. Тогда каждая ссылка, отправленная с телефона, будет нести те же метки, что и ссылки, созданные на компьютере, - а это разница между чистым отчётом и кучей неразмеченного трафика. Схему, которая переживёт всю команду, смотрите в статье соглашения об именовании UTM. - Слаг по вашему выбору. Добавьте второе поле в тело JSON, если хотите читаемое окончание вместо случайного. Что такое custom back-half объясняет, где это применяется.
Если что-то не работает
Почти все неудачные запуски объясняются двумя ошибками.
Первая - действие Получить содержимое URL, оставленное на GET. GET стоит по умолчанию, строку Метод легко пропустить, и API отвечает 404 или 405, которые Быстрые команды показывают как малополезную ошибку.
Вторая - Тело запроса, установленное на Форма вместо JSON. Форма отправляет application/x-www-form-urlencoded, API не может прочитать из этого адрес назначения, и вы получаете 400, что выглядит как проблема сервера.
Если оба пункта в порядке, а запуск всё равно не удаётся, добавьте действие Быстрый просмотр сразу после Получить содержимое URL. Оно покажет необработанный ответ, а сообщение об ошибке API обычно называет поле, к которому есть претензия.
Альтернативы, честно говоря
Команда - не единственный путь, и не всегда правильный.
Если вы сокращаете ссылку раз в месяц, открыть сайт сервиса в Safari и вставить туда URL - вполне нормально и не требует никакой настройки. Если вы делаете это каждую неделю, команда окупает свои три минуты настройки уже за пару недель. А если вы управляете кампаниями, а не делитесь случайной ссылкой, панель управления с папками, тегами и отчётами по кликам - более подходящее место, чем телефон; мобильное приложение покрывает то же самое, но с настоящим управлением ссылками за спиной.
Одно замечание о безопасности. API-ключ живёт внутри команды, поэтому относитесь к ней как к учётным данным. Не публикуйте её в общей ссылке iCloud или в публичной галерее, а если коллеге она нужна, отправьте ему рецепт, а не файл, чтобы он вставил свой собственный ключ. Используйте ключ, ограниченный только созданием ссылок, если API поддерживает такое ограничение.
Читайте опорную серию статей
Эта статья входит в кластер обучающих материалов. Общая версия - как сократить URL, сторона измерений - как отслеживать клики по ссылкам, а бесплатный API сервиса сокращения URL документирует запрос, который отправляет команда.
Ещё по теме в блоге
Частые вопросы
Как сократить URL на iPhone?
Создайте в приложении Быстрые команды команду из четырёх действий: она принимает URL, отправляет его в API сервиса сокращения, считывает short_url из ответа и копирует значение в буфер обмена. Включите Show in Share Sheet - и команда станет действием в два касания из Safari или любого приложения, откуда можно поделиться ссылкой.
Есть ли на iPhone встроенный сервис сокращения URL?
Нет. В iOS нет системного сервиса сокращения, а меню Поделиться в Safari копирует полный URL. Встроенный способ добавить такую функцию - приложение Быстрые команды: оно может вызвать любой HTTP API и поместить результат в буфер обмена без стороннего приложения посередине.
Можно ли сократить ссылку на iPhone без приложения?
Да - откройте сайт сервиса сокращения в Safari и вставьте туда URL. Это работает, но каждый раз стоит переключения вкладки, вставки и копирования. Команда существует, чтобы убрать эти три шага для тех, кто сокращает ссылки чаще, чем изредка.
Безопасен ли такой подход через Быстрые команды для моего API-ключа?
Ключ хранится внутри команды, поэтому относитесь к ней как к учётным данным. Не публикуйте её в общей ссылке iCloud или в галерее команд и используйте ключ, ограниченный только созданием ссылок. Если делитесь командой с коллегой, пусть он вставит свой собственный ключ.
Почему моя команда ничего не возвращает или выдаёт ошибку?
Две обычные причины: действие Получить содержимое URL настроено на GET вместо POST, и тело запроса отправлено как Форма, а не как JSON. Проверьте, что Тело запроса - это JSON с полем destination_url, а заголовок Authorization выглядит как Bearer, затем пробел и ключ.
Может ли команда автоматически добавлять UTM-метки?
Да. Добавьте действие Текст, которое перед вызовом API дописывает параметры кампании к полученному URL, а затем передайте этот текст как адрес назначения. Это самый простой способ убедиться, что каждая ссылка, отправленная с телефона, несёт те же метки, что и ссылки, созданные на компьютере.
Попробуйте Elido
Вставьте URL - получите короткую ссылку
Без регистрации. Ссылка живёт 30 дней. Зарегистрируйтесь, чтобы оставить её навсегда.
Бесплатно, без регистрации · 2 в день