Можно ли создать документ 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.