0

Я использую Google Drive API V3, чтобы управлять моим Google Drive с Node.js и Google-Апи-nodejs-клиент v12.0.0 (http://google.github.io/google-api-nodejs-client/)Создать документ Google с Google Drive API и Node.js

Когда я пытаюсь создать простой текстовый/обычный документ, все работает нормально. Но когда я пытаюсь создать Документ Google, API Диска Google вернет ошибку 400 с сообщением «Плохой запрос».

/** 
    * 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" равно "text/plain", все в порядке. Но когда я поместил «application/vnd.google-apps.document» в значение, я получил ошибку 400.

Некоторые решения?)

ответ

0

Из documentation Руководства по приводу API error 400: Bad Request может означать, что обязательное поле или параметр не предоставлен, недопустимое значение или комбинация предоставленных полей недействительна.

Эта ошибка может возникнуть при попытке добавить дубликат родительского элемента в элемент Диск. Он также может быть брошен при попытке добавить родителя, который создаст цикл в графике каталога.

{ 
"error": { 
"errors": [ 
{ 
"domain": "global", 
"reason": "badRequest", 
"message": "Bad Request" 
} 
], 
"code": 400, 
"message": "Bad Request" 
} 
} 

Таким образом, в вашем случае значение, которое вы предоставляете в поле или параметре, недействительно.

Проверьте этот вопрос и некоторую документацию, чтобы узнать больше информации о своей проблеме.

0

Может быть, это поможет вам, I`m с помощью V4 из Google Drive API

 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); 
      }); 
     });