Как создать документ Google Docs с текстом, используя Google Drive JavaScript SDK V3?
Вот это: Веб-приложение. Google Drive JavaScript SDK.
Я пытаюсь создать новый файл на Google Диске в формате, который можно открыть с помощью интерфейса Google Docs.
Сделал oAuth2 успешно. После этого запустите этот код для создания файла:
// Creates file itself
function create(folderId) {
var fileMetadata = {
'mimeType': 'application/vnd.google-apps.document',
'name': 'mrHanky'
}
var media = {
mimeType: 'application/vnd.google-apps.document',
body: 'Haidee hooowwww i am mr. Hanky!'
}
gapi.client.drive.files.create({
name: 'test_mr_hanky.doc',
parents: [folderId],
resource: fileMetadata,
media: media,
params: {
uploadType: 'media'
},
body: 'Haidee hooowwww mr. Hanky!',
fields: 'id'
}).then(function(result) {
console.log('File create: ', result)
save(result.result.id).then(function(result) {
console.log('File update', result)
})
})
}
// Adds content. Perhaps not correct using of sdk, but somehow it half-works
function save(fileId) {
return gapi.client
.request({
path: '/upload/drive/v3/files/' + fileId,
method: 'PATCH',
params: {
uploadType: 'media'
},
body: 'mr Hanky after save!'
})
}
Итак, файл был создан с именем ' test_mr_hanky.doc ' (из функции 'create'), но его нельзя открыть, просто предлагает мне скачать его!
Кстати, я могу открыть его с помощью LibreOffice с текстом: мистер Хэнки, после сохранения! (из функции "сохранить")
Итак, вопрос: как создать настоящий файл Google-Docs на Google-Drive с текстом, который действительно можно открыть с помощью пользовательского интерфейса Google Docs?
Пожалуйста помоги! Действительно, пытаясь получить это уже 3-й день!
Вот ссылки на документы: https://developers.google.com/drive/v3/reference/files/create https://developers.google.com/api-client-library/javascript/reference/referencedocs
1 ответ
Я думаю, вы почти все поняли правильно.
Вы просто пропустили указание mimetype в Files.create
раздел. fileMetadata
содержит только сведения о файле, необязательно для файлов mimeType application/vnd.google-apps.document
,
gapi.client.drive.files.create({
name: 'test_mr_hanky.doc',
parents: [folderId],
resource: fileMetadata,
media: media,
..
Поэтому добавьте mimeType в эту часть:
gapi.client.drive.files.create({
name: 'test_mr_hanky.doc',
mimeType: 'application/vnd.google-apps.document', //add the mimeType property
..
Сделай это, и все готово. Я проверил это на Files.create Try-it, и это работает.