首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Google Drive API和Node.js创建谷歌文档

使用Google Drive API和Node.js创建谷歌文档
EN

Stack Overflow用户
提问于 2016-08-01 23:59:50
回答 3查看 1.8K关注 0票数 1

我正在使用Google Drive API V3通过Node.js和google-api-nodejs-client v12.0.0 (http://google.github.io/google-api-nodejs-client/)管理我的Google Drive

当我尝试创建一个简单的文本/纯文本文档时,一切工作正常。但是当我尝试创建一个Google文档时,Google Drive API返回了一个400错误消息"Bad Request“。

代码语言:javascript
复制
/**
   * Create file on Google Drive
   * https://developers.google.com/drive/v3/reference/files/create
   */
  CreateFile: (googleapi, oauth2Client, fileName, fileContent, fileType) => {
    const DRIVE = googleapi.drive({ version: 'v3', auth: oauth2Client });

    return new Promise((resolve, reject) => {
      console.log('fileType:',fileType);
      DRIVE.files.create({
        resource: {
          name: fileName,
          mimeType: fileType
        },
        media: {
          mimeType: fileType,
          body: fileContent
        }
      }, (err, result) => {
        if( err ) {
          reject(err);
        }
        else {
          resolve(result);
        }
      });
    });

当变量"fileType“的值为”文本/纯文本“时,一切正常。但是当我将"application/vnd.google-apps.document“赋给该值时,我得到了一个400错误。

一些解决方案?:)

EN

回答 3

Stack Overflow用户

发布于 2016-08-02 15:32:30

在Drive接口的documentation中,error 400: Bad Request可能表示未提供必填字段或参数,或者提供的值无效,或者提供的字段组合无效。

尝试将重复的父项添加到Drive项时可能会引发此错误。它也可以在尝试添加将在目录图中创建循环的父级时抛出。

代码语言:javascript
复制
{
"error": {
"errors": [
{
"domain": "global",
"reason": "badRequest",
"message": "Bad Request"
}
],
"code": 400,
"message": "Bad Request"
}
}

因此,在本例中,您在字段或参数中提供的值是无效的。

请查看此SO问题和一些文档以了解有关您的问题的更多信息。

票数 0
EN

Stack Overflow用户

发布于 2016-09-22 19:00:13

也许它对你有帮助,我正在使用Google Drive API的V4

代码语言:javascript
复制
        var fileMetadata = {
            'name': 'Project plan',
            'mimeType': 'application/vnd.google-apps.document'
        };

        drive.files.create({
            resource: fileMetadata,
            fields: '*',
            auth: jwtClient
        }, function (err, file) {
            if (err) {
                return global.triggerError(req, res, err);
            }

            drive.permissions.create({
                resource: {
                    'type': 'anyone',
                    'role': 'writer'
                },
                fileId: file.id,
                fields: 'id',
                auth: jwtClient
            }, function (err, permission) {
                if (err) {
                    return global.triggerError(req, res, err);
                }

                callback(file);
            });
        });
票数 0
EN

Stack Overflow用户

发布于 2019-08-25 20:31:35

您需要使用不同的mime类型:

代码语言:javascript
复制
{
  requestBody: {
    ...
    mimeType: 'application/vnd.google-apps.document',
  },

  media: {
    ... 
    mimeType: 'text/html', // or text/plain
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38703265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档