Я пытаюсь загрузить файл на 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)
});
Я трачу около недели на это, чего мне не хватает?