2016-11-02 99 views
1

这里是:Web应用程序。 Google Drive JavaScript SDK。如何使用Google Drive JavaScript SDK V3创建带文本的Google文档文档?

我尝试使用格式创建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'(从功能 '创建'),但它不能被打开,只是建议我下载它!

BTW localy我可以用LibreOffice用文本打开它:保存后Hanky先生!(从功能“保存”)

所以,问题是:如何创造真正的谷歌,文档在谷歌驱动器与一个文本文件,可以通过谷歌文档的用户界面被真正打开?

请帮忙!真的,试图获得第三天!

这里有链接,文档: https://developers.google.com/drive/v3/reference/files/create https://developers.google.com/api-client-library/javascript/reference/referencedocs#gapiclientrequestargs

回答

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, 
.. 

所以添加mime类型在这一部分:

gapi.client.drive.files.create({ 
name: 'test_mr_hanky.doc', 
mimeType: 'application/vnd.google-apps.document', //add the mimeType property 
.. 

做到这一点,你是好去。我测试了这个Files.create Try-it,它的工作原理。

+0

哇,你是对的!我非常接近答案:))thanx! – Freakachoo

+0

此代码可用于创建doc文件,但不会填充任何内容。在请求的“主体”中传递的文本不会插入到文件中。任何想法如何让内容填充? – Aurovrata

相关问题