Comment créer un dossier sur Google Drive à l'aide de JavaScript
-
12-12-2019 - |
Question
En ce moment, j'utilise ce code pour télécharger des fichiers sur Google Drive: https://stackoverflow.com/a/11657773/1715263 Cela fonctionne bien avec un fichier texte.
Avec le même code, j'essaie de créer un dossier, en utilisant ces informations de Google: https://developers.google.com/drive/folder
SO Google dit "Type de contenu: Application / JSON" passe dans l'en-tête et "Application / VND.Google-Apps.folder" devrait être le mimeType dans le corps (?), c'est ce que je fais dans moncode, qui ressemble à ceci maintenant:
function createFolder()
{
var access_token = googleAuth.getAccessToken();
var json = JSON.stringify({
mimeType: 'application/vnd.google-apps.folder',
title: 'Folder',
});
var body = "Content-Type: application/json" + "\r\n" +
"Content-Length: " + json.length + "\r\n" + "\r\n" +
json;
gapi.client.request({
'path': '/upload/drive/v2/files/',
'method': 'POST',
'params': {'uploadType': 'multipart'},
'headers': {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + access_token,
},
'body': body
}).execute(function(file) {
document.getElementById("info").innerHTML = "Created folder: " + file;
});
Mais il ne s'agit que d'un fichier nommé "Untitled", ce n'est pas un dossier et vous ne pouvez pas l'ouvrir.
Lorsque je change le "Type de contenu" dans la section "En-têtes" dans "Application / VND.Google-Apps.Folder" et supprimez la partie "Corps", il crée un dossier nommé "Untitled".
Comment puis-je l'obtenir pour créer un dossier avec un titre spécifique?
La solution
Enfin, je suis terminé de travailler par Googling Claudios Code qui m'a conduit à cette pièce de code: https://stackoverflow.com/a/11361392/1715263
La chose importante qui a changé est le "chemin", c'est maintenant "/ lecteur / v2 / fichiers /" au lieu de "/ upload / lecteur / v2 / fichiers /". Je viens de supprimer la "fonction" gapi.client.load'-Boîte, ajouté des informations sur les en-têtes et modifié le mimeType de carrossage.
Voici donc le code:
function createFolder() {
var access_token = googleAuth.getAccessToken();
var request = gapi.client.request({
'path': '/drive/v2/files/',
'method': 'POST',
'headers': {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + access_token,
},
'body':{
"title" : "Folder",
"mimeType" : "application/vnd.google-apps.folder",
}
});
request.execute(function(resp) {
console.log(resp);
document.getElementById("info").innerHTML = "Created folder: " + resp.title;
});
}
Autres conseils
Essayez le code suivant:
function createFolder(folderName) {
var body = {
'title': folderName,
'mimeType': "application/vnd.google-apps.folder"
};
var request = gapi.client.drive.files.insert({
'resource': body
});
request.execute(function(resp) {
console.log('Folder ID: ' + resp.id);
});
}