Можно ли создать документ Google из приложения Chromebook?

У меня есть веб-сайт, на котором я сохраняю файл в двух разных форматах (в зависимости от выбора пользователя). Основным форматом является документ Word (DOCX), но я работаю над тем, чтобы иметь возможность сохранить его как документ Google (GDOC). Я знаю, что можно создать GDOC с помощью Google Drive API ( связанный вопрос). Вы указываете тип содержимого в запросе на загрузку, и файл создается.

Я использую этот метод на моем веб-сайте, и все работает нормально. GDOC создан, и он хорошо читается в Документах Google. DOCX тоже успешно создан, проблем нет.

Теперь, когда я пытаюсь сделать то же самое в приложении Chromebook, у меня нет доступа к Google Drive API. Это не должно быть проблемой, так как в Chromebook Google Drive реализован в файловой системе. Итак, я следую руководству о том, как сохранить файл в Chromebook, чтобы убедиться, что мой файл имеет правильный тип MIME (т.е. "application/vnd.google-apps.document"). Когда я сохраняю файл в Google Drive (через файловую систему), я получаю файл без расширения, который читается как ZIP.

Вот упрощенная версия функции сохранения:

var gdocMime = "application/vnd.google-apps.document";
var docxMime = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";

zip.generateAsync({
    type: "blob",
    mimeType: isChromeApp || !isSaveLocal ? gdocMime : docxMime
}).then(function (blob) {
    if (isChromeApp) {
        // Chromebook. Save through the file system
        chrome.fileSystem.chooseEntry({
            type: "saveFile",
            suggestedName: filename
            }, function (writableFileEntry) {
                writableFileEntry.createWriter(function (writer) {
                    writer.onwriteend = function (e) {
                        // File saved
                    };
                    writer.write(blob);
                });
            }
        });
    } else if (isSaveLocal) {
        // Website. Save as a normal download
        saveAs(blob, `${filename}.docx`);
    } else {
        // Website. Save to Google Drive
        saveFileToGoogleDrive(blob, filename);
    }
});

blob генерируется правильно и с соответствующим типом MIME. Проблема в том, что этот файл сохраняется в Chromebook. Он имеет тип GDOC MIME, но Google Drive читает его в формате ZIP.

Мой вопрос: возможно ли вообще создать GDOC на Chromebook и сохранить его на Google Диске? Если так, то как?

Может быть, использовать что-то вроде Sheets API, но для Google Docs?


Почему я думаю, что это возможно:

  • В файловой системе Chromebook я могу идентифицировать файлы, созданные с помощью Google Docs, по расширению gdoc.
  • Файлы GDOC можно перемещать в папку "Загрузки" из Chromebook (а оттуда в Pendrive и на компьютер без ChromeOS).

Почему я думаю, что это невозможно

  • Файлы GDOC нельзя редактировать вне Документов Google
  • При попытке загрузить файл GDOC с Google Диска, результатом загрузки является DOCX
  • Экспортированный файл GDOC представляет собой файл JSON с url свойство, указывающее на файл в Google Docs

Я думаю, что один из способов сделать это - создать файл в Google Docs, получить url и заполните JSON необходимыми свойствами и сохраните его через файловую систему с расширением gdoc. Но я до сих пор не могу создать файл в Google Docs.

0 ответов

Другие вопросы по тегам