Начало года ознаменовалось для нашей команды множеством нововведений, обещанных еще в конце 2013 года. Самым громким, безусловно, стал релиз бесплатного пакета офисных приложений Teamlab Personal, который даже удостоился публикации на TechCrunch.
На прошлой неделе мы анонсировали интеграцию редакторов Teamlab с Google Drive через приложение в Chrome Store. Если вкратце, то вы теперь сможете работать с документами из Google Диска в редакторах Teamlab.
Под катом мы расскажем об этапах реализации, технических сложностях, с которыми мы столкнулись, и конечно же, результатах. Будет несколько абзацев для разработчиков и один для маркетологов. Если читать не хочется, можно сразу установить приложение из Chrome Store и разобраться во всем самостоятельно.
Краткое содержание предыдущих серий
В январе мы добавили Teamlab Personal в Chrome Store в качестве ссылки на сайт приложения. По сути никакой практической пользы эта ссылка не имела, однако, нам уж очень хотелось поскорее попасть в заветный Chrome Store. Поэтому мы добавили минимальный вариант, (который чудесным образом набрал более 2000 пользователей), и стали думать, чем расширить его функциональность.
Единственное аналогичное решение, которое существует на сегодняшний день — это Zoho, который тоже интегрирован с Google Drive и позволяет редактировать гуглодоки в своих приложениях. Посмотрели мы на это решение, покритиковали и решили сделать свое, только с блэкджеком.
Цели интеграции
С технической точки зрения необходимо было реализовать следующее:
- Интеграция инструментов просмотра и редактирования Teamlab Office в хранилище Google Drive.
- Предоставление возможностей совместного редактирования в Teamlab Office.
- Конвертация файлов и создание новых в общепринятом формате Microsoft Office.
- Использование информации Google аккаунта для авторизации на Teamlab Personal.
! Важной деталью реализации является то, что файлы находятся не у нас, а в хранилище Google Drive. Со стороны Teamlab используются только инструменты редакторов.
С пользовательской точки зрения мы предоставляем возможность не выходя из своего привычного G-аккаунта, работать с документами в полнофункциональном редакторе, применять сложное форматирование, не беспокоиться о конвертации форматов,
Этапы реализации
- Регистрируемся в консоли разработчика, добавляем проект и получаем ключи для авторизации в приложении. К приложению подключены Drive API и Drive SDK. Хочется отметить, что интерфейс настроек Drive SDK весьма устаревший, в отличии от остального функционала и достаточно часто возникали трудности с добавлением иконок, о чём даже писали телегу в саппорт Google (угадайте, получен ли ответ).
- Загружаем требуемые иконки файлов и иконки приложения (5 размеров).
- Для авторизации указываем ключ авторизации, скопы для получения email, информации об аккаунте и информации о файле, и адрес обработки запроса Google авторизации на personal.teamlab.com.
- Далее указываем основные форматы файлов для открытия в приложении: docx, xlsx, pptx. В дальнейшем, если в Google Drive выбрать наше приложение по умолчанию, то эти файлы будут открываться в один клик. Также мы добавили вторичные форматы: ppt, pps, odp, doc, odt, rtf, txt, xls, csv, ods, mht, html, htm, fb2, epub, pdf, djvu. При открытии файла этих форматов, приложение создаст в той же папке сконвертированную копию формата Office Open Xml и в редакторе откроет уже её. Такое же действие будет выполнено и для внутреннего формата Google Drive.
- В Google Chrome Web Store мы создали приложение Teamlab Personal, в манифесте которого указан контейнер для связи с Google Drive: «container»: «GOOGLE_DRIVE» и идентификатор нашего приложения из консоли разработчика.
При установке Teamlab Personal из Вебстора, приложение будет автоматом подключено и в Google Drive."container" : "GOOGLE_DRIVE", "api_console_project_id" : "YOUR_APP_ID"
- При открытии файла или создании нового на адрес в personal.teamlab.com приходит запрос с данными о действии и кодом, необходимым для получения токена авторизации по протоколу OAuth 2.0. Токен используется при работе с Drive API. Приложение обращается к Google Drive только двумя методами: получение файла и сохранение.
Результат. Как это работает
Вы устанавливаете приложение Teamlab Personal из Chrome Store — автоматически в вашем Google Drive аккаунте появляется иконка Teamlab при создании новых и редактировании существующих документов. При ее нажатии документ открывается в редакторе Teamlab, а по окончании работы сохраняется обратно на Диск.
Если настроить использование Teamlab Personal по умолчанию, то docx, xlsx и pptx будут открываться в нем сразу. Для других документов создается копия в общепринятом формате, которая сохраняется здесь же, рядом с оригиналом в Google аккаунте.
Чем мы отличились от Zoho
- Zoho требует полные права доступа к вашему Drive, мы — минимальные.
- Zoho конвертирует документы в собственный zdoc формат, мы — в общепринятый Office Open XML.
- Zoho предоставляет по отдельности редакторы текстов, таблиц и презентаций — у нас все в одном приложении.
Ну а уж сравнивать возможности редактирования в Zoho и в Teamlab — это вообще тема отдельного поста :-)
Нерешенная проблема
Основной трудностью, с которой мы столкнулись в процессе реализации, стала возможность обработки Google Sheets нового формата. При попытке получить к ним доступ с целью редактирования, выдается ошибка авторизации. Проблема решается довольно просто: нужно запросить у пользователя полные права доступа (как и сделали Zoho). Но кто же захочет давать столько информации стороннему приложению? Сами разработчики Google ещё год назад на Staсkoverflow обещали устранить проблему, но судя по всему, так и не выкатили обновления.
В общем, мы решили, что требовать полные права у пользователей некрасиво, поэтому новые таблицы в редакторе Teamlab недоступны до тех пор, пока Google не исправит ошибку.
Абзац для маркетологов
График показов и установок приложения в Chrome Store
Маленькая, но очень важная деталь, которая появляется при интеграции вашего приложения с Google Drive — вот эта вот иконка:
Она как бы намекает, что вы попали в каталог приложений для Диска, и шансов быть замеченными у вас теперь на порядок больше. Ну и в общем, у нас буквально за 1 вечер трафик на сайт Teamlab Personal подскочил в 4 раза, кривая реквестов с google аккаунтов начала истерично дергаться, количество показов в хром сторе перешло грани разумного, и еще мы теперь выдаемся в числе первых на некоторых языках по нужным нам запросам.
А все почему? Потому что приложение полезное и сделано с любовью.