PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → API OVH METHOD PUT
API OVH METHOD PUT
Iniciado por lucasniewia, 15,sep. 2016 14:54 - 2 respuestas
Publicado el 15,septiembre 2016 - 14:54
Bonjour à tous,
Je me suis beaucoup servit des API OVH avec la fonction GET, mais j'aimerai maintenant aussi me servir de celle de PUT.
Le problème est que je n'arrive pas à m'authentifier au près d'OVH (INVALID SIGNATURE).


Voici mon procédé en GET :

Procedure SignatureOVH(sURL est une chaîne)
sBody est une chaîne = ""

sSignatureEnClair est une chaîne = gsapplicationSecret+"+"+gsconsumerKey+"+"+"GET"+"+"+sURL+"+"+sBody+"+"+TimeStamp()
sSignatureEnHexa est une chaîne= BufferVersHexa(HashChaîne(HA_SHA_160,sSignatureEnClair))
sSignatureEnHexa =(Minuscule(Remplace(sSignatureEnHexa,[Caract(32),RC],"")))
sSign est une chaîne ="$1$"+Minuscule(sSignatureEnHexa)

RENVOYER sSign


HTTPRequête(sURL,"","X-Ovh-Application:"+gsApplicationKey+RC+"X-Ovh-Consumer:"+gsconsumerKey+RC+"X-Ovh-Signature:"+SignatureOVH(sURL)+RC+"X-Ovh-Timestamp:"+TimeStamp(),"","application/json")


Cela fonctionne très bien, maintenant je ne sais pas trop comment m'y prendre pour modifier avec PUT, il faut bien évidement commencer par remplacer GET par PUT dans la signature mais il reste le corps à définir j'ai essayé plusieurs chose en vain ou le problème vient peut être de HTTPRequête.

Voilà si quelqu'un s'est déjà servit des API OVH en méthode PUT, je suis preneur !

Merci
Publicado el 15,septiembre 2016 - 17:00
Je me réponds à moi même, j'ai trouvé la solution :

Procedure RequeteHTTPPUT(sURL est une chaîne,sCorps est une chaîne)

MaRequete est un HTTPRequête
MaRequete..URL = sURL
MaRequete..Entête["X-Ovh-Application"] = gsApplicationKey
MaRequete..Entête["X-Ovh-Consumer"] = gsConsumerKey
MaRequete..Entête["X-Ovh-Signature"] = SignatureOVHPUT(sURL,sCorps)
MaRequete..Entête["X-Ovh-Timestamp"] = TimeStamp()
MaRequete..Entête["Content-Type"] = "application/json"
MaRequete..Méthode = httpPut
MaRequete..Contenu = sCorps

sReponseHTTP est un httpRéponse = HTTPEnvoie(MaRequete)

RENVOYER sReponseHTTP..Contenu


Procedure SignatureOVHPUT(sURL est une chaîne,sCorps est une chaîne)

sSignatureEnClair est une chaîne = gsApplicationSecret+"+"+gsConsumerKey+"+"+"PUT"+"+"+sURL+"+"+sCorps+"+"+TimeStamp()
sSignatureEnHexa est une chaîne= BufferVersHexa(HashChaîne(HA_SHA_160,sSignatureEnClair))
sSignatureEnHexa =(Minuscule(Remplace(sSignatureEnHexa,[Caract(32),RC],"")))
sSign est une chaîne ="$1$"+Minuscule(sSignatureEnHexa)

RENVOYER sSign


Pour les prochains ;)
Miembro registrado
6 mensajes
Publicado el 10,enero 2020 - 18:13
Bonjour Lucas,
Je cherche à me connecter à l'API d'OVH avec Windev et effectuer une requête simple sur l'API (par exemple lister les noms de domaines).
Auriez-vous un exemple à partager ?
Je vous remercie.
Jean-Luc