Google диск загружает файл на электрон, но не в нод - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь загрузить файл на Google Drive, используя "googleapis": "^48.0.0". Как-то по какой-то причине скрипт работает, если я выполнил его в узле, но когда я использую его в своем электронном приложении, я получаю:

POST https://www.googleapis.com/upload/drive/v3/files?fields=id&uploadType=multipart 400 ()
GaxiosError: Invalid multipart request with 0 mime parts.
    at Gaxios._request (http://localhost:4200/vendor.js:89168:23)

мой код:

const { google } = require('googleapis');
const fs = require('fs');

let clientId = ""
let clientSecret = ""
let redirectUrl = "http://localhost:3000"
let oAuth2Client = new google.auth.OAuth2(clientId, clientSecret, redirectUrl);
let scopes = ["https://www.googleapis.com/auth/userinfo.profile",
    "https://www.googleapis.com/auth/drive.file",
    "https://www.googleapis.com/auth/drive.appdata",
    "https://www.googleapis.com/auth/drive"];

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

oAuth2Client.setCredentials(JSON.parse(token));
const oauth2 = google.oauth2('v2');
let uname = await oauth2.userinfo.get({ auth: oAuth2Client })

также перечисляет файлы в работе привода на обоих

const drive = google.drive({ version: 'v3', auth: oAuth2Client });
drive.files.list({
    pageSize: 10,
    fields: 'nextPageToken, files(id, name)',
  }, (err, res) => {
    if (err) return console.log('The API returned an error: ' + err);
    const files = res.data.files;
    if (files.length) {
      console.log('Files:');
      files.map((file) => {
        console.log(`${file.name} (${file.id})`);
      });
    } else {
      console.log('No files found.');
    }
  });

Однако создание файла работает только при запуске сценария узла напрямую, а не в приложении для электроники

  var folderId = '1YvMSBFNAHa17dVvP3YLjBTSfvRPCyusu';
  var fileMetadata = {
    'name': 'favicon.png',
    parents: 'root'
  };
  var media = {
    mimeType: 'image/jpeg',
    body: "ioksnk fj"
  };
  drive.files.create({
    resource: {
      name: 'Another File 5',
      mimeType: 'text/plain',
    },
    media: {
      mimeType: 'text/plain',
      body: 'File Body',
    }
  }, function(err,result){
      if(err) console.log(err) 
      else console.log(result)
  });

Я трачу около недели на это, чего мне не хватает?

...