【问题标题】:How to create Google Docs document with text, using Google Drive JavaScript SDK V3?如何使用 Google Drive JavaScript SDK V3 创建带有文本的 Google Docs 文档?
【发布时间】:2016-11-02 19:03:13
【问题描述】:

这里是:Web 应用程序。 Google Drive JavaScript SDK。

我尝试在 Google Drive 中创建新文件,格式可以用 Google Docs UI 打开。

成功完成 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 中使用以下文本打开它:mr Hanky after save!(来自函数“save”)

那么,问题是:如何在 Google-Drive 上创建带有文本的真正的 Google-Docs 文件,它可以真正被 google docs UI 打开?

请帮忙!真的,已经是第 3 天了!

以下是文档链接: https://developers.google.com/drive/v3/reference/files/create https://developers.google.com/api-client-library/javascript/reference/referencedocs#gapiclientrequestargs

【问题讨论】:

    标签: google-drive-api


    【解决方案1】:

    我认为你几乎做对了。

    您只是错过了在 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 上对此进行了测试,它可以工作。

    【讨论】:

    • 哇,你是对的!我非常接近答案:))thanx!
    • 此代码用于创建 doc 文件,但未填充任何内容。在请求的“正文”中传递的文本不会插入到文件中。知道如何填充内容吗?
    • 有人能够将 json 内容上传到 Google Doc 文档 (application/vnd.google-apps.document) 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    • 2016-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多