这是:Web应用程序。 Google Drive JavaScript SDK。
我尝试在Google云端硬盘中使用格式创建新文件,可以使用Google文档用户界面打开。
成功完成了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 ”(来自“创建”功能),但无法打开,只是建议我下载它!
BTW localy我可以用LibreOffice用文本打开它: mank Hanky先保存!(来自函数'save')
所以,问题是:如何使用文字在Google-Drive上创建真实的Google-Docs文件,这可以通过Google文档用户界面真正打开?
请帮忙!真的,试着已经第3天了!
以下是文档的链接: https://developers.google.com/drive/v3/reference/files/create https://developers.google.com/api-client-library/javascript/reference/referencedocs#gapiclientrequestargs
答案 0 :(得分:0)
我认为你几乎把一切都搞定了。
您错过了在Files.create
部分中指定mimetype。 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上对此进行了测试,结果正常。