PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → Google Drive API v3 : créer un dossier ?
Google Drive API v3 : créer un dossier ?
Started by ChouLAGH, Mar., 04 2024 5:18 PM - 4 replies
Registered member
254 messages
Posted on March, 04 2024 - 5:18 PM
Bonjour,
Je développe en WinDev 28 (j'ai la version 2024 mais le client reste en 28) et je travaille avec l'API v3 de Google Drive.
J'arrive à lister des fichiers et des dossiers, à télécharger un fichier.
mon souci :
je n'arrive pas à créer un nouveau dossier sur le Google Drive.
Voici mon code :
==========================
reqGoogleDrive est une restRequête
//
SI gsToken.Valide=Faux ALORS // si token a expiré
prc_ConnexionGoogleDrive()
FIN
SI gsToken.Valide=Vrai ALORS // si token est valide
reqGoogleDrive.AuthToken=gsToken // j'associe à ma requête le token
// créer un nouveau dossier à la racine du Drive :

reqGoogleDrive.URL="https://www.googleapis.com/drive/v3/files…', name='lala', mimeType='application/vnd.google-apps.folder'"

// envoi requête
resultatRequete est un restRéponse=reqGoogleDrive.Envoie()
SI resultatRequete.CodeEtat="200" ALORS
Info("dossier créé sur Google Drive")
SINON
Info(resultatRequete.CodeEtat+RC+resultatRequete.Contenu)
FIN
SINON
Info("Problème connexion à Google drive")
FIN
=============================
résultat : j'obtiens la liste des fichiers et non pas la création d'un dossier.

Dans les autres langages : php, java, ... on invoque la méthode create.
question : comment expliquer dans URL cette action de création ?

Merci de votre aide.

--
Chouaïb
Registered member
254 messages
Posted on March, 04 2024 - 5:59 PM
je rectifie mon sujet ci-dessus car j'ai trouvé une solution plus simple avec un petit souci :

je me connecte vient à Google drive API v3 et je demande à créer un nouveau dossier ainsi :
=============================
req est un httpRequête
req.Méthode = httpPost
req.URL = "https://www.googleapis.com/upload/drive/v3/files"
req.AuthToken = gsToken // Token d'authentification
req.ContentType = "application/json"
req.Entête["Accept"] = "application/json"

vParamAPI est un Variant
vParamAPI.name = "toto"
vParamAPI.mimeType = "application/vnd.google-apps.folder"


req.Contenu = VariantVersJSON(vParamAPI)

réponseHTTP est un httpRéponse = HTTPEnvoie(req)
vDonnées est un Variant = JSONVersVariant(réponseHTTP.Contenu)
====================================

Cela me crée un fichier nommé "untitled" et pas un dossier nommé "toto" .

Quelqu'un a déjà fait cela svp ?

je galère

--
Chouaïb
Registered member
202 messages
Posted on March, 22 2024 - 2:47 PM
Bonjour,

Ne devez vous pas invoquer la methode drives.create? https://developers.google.com/drive/api/reference/rest/v3/drives/create…
J'ai l'impression que vous tentez de créer un dossier avec la mérthode de création d'un fichier dans votre exemple?
Registered member
254 messages
Posted on March, 26 2024 - 12:36 PM
Merci Yvan,
Je vais essayer.

--
Chouaïb
Posted on July, 11 2024 - 4:30 PM
Bonjour,

je suis intéressé par votre procédure de connexion à l'API V3
l'envoi de fichier j'utilise les fontion incluses dans Windev, mais pour activer le partage et recupérer le lien, je vais devoir passer en rest car les fonctions n'existent pas)



pour la création d'un dossier, si j'ai bien compris, il faut passer comme vous l'avez fait avec un
vParamAPI est un Variant
vParamAPI.name = "toto"
vParamAPI.mimeType = "application/vnd.google-apps.folder"

sauf que le chemin du dossier doit être de la forme : "/dossier/dossier/dossierAcreer/"
si le dossier est à la racine du drive nous aurons donc

vParamAPI est un Variant
vParamAPI.name = "/toto/"
vParamAPI.mimeType = "application/vnd.google-apps.folder"