Вроде удобно: табличный редактор, доступный с любого места где есть браузер, мощный API с поддержкой для всех популярных языков, помощь от гугля. Но нет же внутри этого творения творится настоящий ад. Казалось бы, простая задача - выгрузить CSV из приватного документа хостящегося на google drive. Что может быть проще? Ищешь доки по HTTP интерфейсу, инициализируешь токен, настраиваешь CORS через веб-морду, устанавливаешь выходной формат через &format=csv и херачишь по Ajax. Хер там. Тут же гугля: * Вместо нормального токена здесь новомодный JSON Web Token. А значит Oauth, с "удобной" либой gapi. * Сранный поисковик засирает ответами с прошлой версией API V2. Повсюду предлагают простое решение которое работает только если ты расшарил доку публично, если приватно - читай доки сука! * С экспортом в mimeType text/csv отдается только первый SHEET. Как получить второй - неизвестно. Поэтому я хоть забил feauture request чтобы эти бездельники удосужились добавить вменяемый gid для перехода по всем таблицам.* Понятно что русский язык неофициален и неприемлем в интернете, тогда зачем отдавать response в utf-8? Хоть загуглил грязный depricated хак с JS переводом в нужной кодировке: decodeURIComponent(escape(response.body)) * В application/vnd.openxmlformats-officedocument.spreadsheetml.sheet формируется так называемый large string которую просто распарсить не получится Короче потратил две (или три?) ночи, забил на это неблагодарное дело и решил реализовать это при помощи скрипта на Google App Script. Это гавнище каким походу за три года пока я к нему не прикасался совершенно не изменилось: дебаггер остался примитивным, интерфейс устаревшим, работает медленно и пр. И финальный штрих - их API executable походу не работает, во всяком случае у меня оно не завелось. Однако, деплой в роли веб-приложения работает круто. Особенно радует простота с которой можно достаточно легко наваять JSON выдачу: function doGet(request) { return ContentService.createTextOutput(JSON.stringify({x:666})) .setMimeType(ContentService.MimeType.JSON); } PS. Гуглявцы те еще засранцы, именно такими быдло-действиями насильно подсаживают нас на свои их гавно сервисы. |
Последние новости >