PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Envoi d'un MMS avec PushBullet.. Comment traduire la commande CUR ??
Envoi d'un MMS avec PushBullet.. Comment traduire la commande CUR ??
Débuté par christian.lebon, 21 fév. 2023 21:10 - 2 réponses
Posté le 21 février 2023 - 21:10
Bonjour,

Voila, j'ai réalisé une procédure pour envoyer un MMS avec une image (image.jpg) à un numéro de téléphone, je suis arrivé à traduire 2 des 3 commandes CURL vers des commandes Windev HTTP nécessaire pour configurer le MMS, mais je n'arrive pas à traduire une des commandes CURL, celle--ci :
curl -i -X POST "+upload_url+" -F file=@"+Caract(34)+fRepEnCours+"\image.jpg"+Caract(34))

Je ne vois pas comment la traduire en commande HTTP...
Avez vous une idée??

Merci

Procedure Message_MMS(Message_Chaine,Numero_Telephone)
MaHttp est une httpRequête
MaHttp2 est une httpRequête
cMaReponse est un httpRéponse
data_binary est un Variant
Chaine_reponse est une chaîne
Erreur_HTTP est une chaîne
Access_token est une chaîne = "<Mon_Token_PushBullet>" //Exemple : o.ReB9NSxDHNYAUx2yiKLzFklOmlPRbbjj

//************* CURL Numéro 1
//curl --header 'Access-Token: <your_access_token_here>' \
//--header 'Content-Type: application/json' \
//--data-binary '{"data":{"addresses":["+13035551212"],"file_type":"image/jpeg","guid":"993aaa48567d91068e96c75a74644159","message":"Text message body.","target_device_iden":"ujpah72o0sjAoRtnM0jc"},"file_url":"https://dl.pushbulletusercontent.com/foGfub1jtC6yYcOMACk1AbHwTrTKvrDc/john.jpg"}' \
//--request POST \
//https://api.pushbullet.com/v2/texts
//************* CURL Numéro 1

MaHttp.Méthode = httpPost
MaHttp.Entête["Content-Type"] = "application/json"
MaHttp.Entête["Access-Token"] = "<Mon_Token_PushBullet>"
MaHttp.URL = "https://api.pushbullet.com/v2/upload-request"
data_binary.file_name = fRepEnCours()+"\image.jpg"
data_binary.file_type = "image/jpeg"
MaHttp.Contenu = VariantVersJSON(data_binary)

cMaReponse = HTTPEnvoie(MaHttp)
SI ErreurDétectée ALORS
Ecrit_Log("Erreur Envoi du message PushBullet : "+ErreurInfo(errComplet)) //Envoi Err
SINON
IF cMaReponse..Contenu="{}" ALORS
Ecrit_Log("Envoi du message SMS pushbullet OK") //Envoi OK
ELSE
Ecrit_Log("Erreur Envoi du message MMS pushbullet : "+cMaReponse..Contenu) //Envoi OK
FIN
FIN

//************* CURL Numéro 2 que je n'arrive pas à traduire en commandes WINDEV
//Je passe donc pas un .BAT (pas très élégant...)
//curl -i -X POST https://upload.pushbullet.com/upload-legacy/a5e1776d2566a6b16032958697288df4 -F file=@image.jpg
//************* CURL Numéro 2
url_reponse est une chaîne = cMaReponse..Contenu
upload_url est une chaîne
fichier_url est une chaîne

Chaine_reponse = cMaReponse..Contenu
upload_url = ExtraitChaîne(url_reponse,10,",")
fichier_url = ExtraitChaîne(url_reponse,9,",")
pos est un entier=Position(upload_url,":")
upload_url = Milieu(upload_url,pos+1)
upload_url = Replace(upload_url,"}","")
upload_url = Replace(upload_url,Caract(34),"")
pos = Position(fichier_url,":")
fichier_url = Milieu(fichier_url,pos+1)
fichier_url = Replace(fichier_url,"}","")
fichier_url = Replace(fichier_url,Caract(34),"")

canal est un entier= fCrée(fRepEnCours+"\curl2.bat")
fEcritLigne(canal,"curl -i -X POST "+upload_url+" -F file=@"+Caract(34)+fRepEnCours+"\image.jpg"+Caract(34))
fClose(canal)
LanceAppli(fRepEnCours+"\curl2.bat",exeActif, exeNonBloquant)

//************* CURL Numéro 3
//curl --header 'Access-Token: <your_access_token_here>' \
// --header 'Content-Type: application/json' \
// --data-binary '{"data":{"addresses":
//["+13035551212"],"file_type":"image/jpeg","guid":"993aaa48567d91068e96c75a74644159","message":"Text message //body.","target_device_iden":"ujpah72o0sjAoRtnM0jc"},"file_url":"https://dl.pushbulletusercontent.com///foGfub1jtC6yYcOMACk1AbHwTrTKvrDc/john.jpg"}' \
// --request POST \
// https://api.pushbullet.com/v2/texts
//************* CURL Numéro 3
// Entête HTTP
MaHttp.Méthode = httpPost
MaHttp.Entête["Content-Type"] = "application/json"
MaHttp.URL = "https://api.pushbullet.com/v2/texts"
Personne est un Variant
Personne.data.target_device_iden = "<Mon_device_iden>" //Identifiant pushbullet du téléphone à utiliser
Personne.data.addresses = [Numero_Telephone] //Numero_Telephone destinataire
Personne.data.message = Message_Chaine //Message du MMS
Personne.data.guid = DonneGUID(guidBrut) //Identifiant unique
Personne.data.file_type = "image/jpeg"
Personne.file_url = fichier_url //Url du fichier image dans le systeme pushbullet
MaHttp.Contenu = VariantVersJSON(Personne)

cMaReponse = HTTPEnvoie(MaHttp)
SI ErreurDétectée ALORS
Ecrit_Log("Erreur Envoi du message PushBullet : "+ErreurInfo(errComplet)) //Envoi Err
SINON
IF cMaReponse..Contenu="{}" ALORS
Ecrit_Log("Envoi du message MMS pushbullet OK") //Envoi OK
ELSE
Ecrit_Log("Erreur Envoi du message MMS pushbullet : "+cMaReponse..Contenu) //Envoi OK
FIN
FIN
RENVOYER Vrai
Posté le 22 février 2023 - 15:52
Bon j'ai trouvé tout seul la solution très simple finalement. ;)
Le code modifié ci-dessous fonctionne parfaitement. Enjoy. :merci:

Exemple : Message_MMS("Essai MMS","+33655668897",frepencours()+"\image.jpg")

Procedure Message_MMS(Message_Chaine,Numero_Telephone,image_a_envoyer)
MaHttp est une httpRequête
MaHttp2 est une httpRequête
cMaReponse est un httpRéponse
data_binary est un Variant
Chaine_reponse est une chaîne
Access_token est une chaîne = "<Mon_Token_PushBullet>" //Exemple : o.ReB9NSxDHNYAUx2yiKLzFklOmlPRbbjj

//************* CURL Numéro 1
//curl --header 'Access-Token: <your_access_token_here>' --header 'Content-Type: application/json' --data-binary '{"file_name":"image.jpg","file_type":"image/jpeg"}' --request POST https://api.pushbullet.com/v2/upload-request
//************* CURL Numéro 1

MaHttp.Méthode = httpPost
MaHttp.Entête["Content-Type"] = "application/json"
MaHttp.Entête["Access-Token"] = Access_token
MaHttp.URL = "https://api.pushbullet.com/v2/upload-request"
data_binary.file_name = image_a_envoyer
data_binary.file_type = "image/jpeg"
MaHttp.Contenu = VariantVersJSON(data_binary)

cMaReponse = HTTPEnvoie(MaHttp)
SI ErreurDétectée ALORS
Ecrit_Log("Erreur Envoi du message PushBullet : "+ErreurInfo(errComplet)) //Envoi Err
SINON
IF cMaReponse..Contenu="{}" ALORS
Ecrit_Log("Envoi du message SMS pushbullet OK") //Envoi OK
ELSE
Ecrit_Log("Erreur Envoi du message MMS pushbullet : "+cMaReponse..Contenu) //Envoi OK
FIN
FIN

//************* CURL Numéro 2 que je n'arrive pas à traduire en commandes WINDEV
//Je passe donc pas un .BAT (pas très élégant...)
//curl -i -X POST https://upload.pushbullet.com/upload-legacy/a5e1776d2566a6b16032958697288df4 -F file=@image.jpg
//************* CURL Numéro 2
url_reponse est une chaîne = cMaReponse..Contenu //Réponse de la commande précédente
upload_url est une chaîne
fichier_url est une chaîne

Chaine_reponse = cMaReponse..Contenu
upload_url = ExtraitChaîne(url_reponse,10,",")
fichier_url = ExtraitChaîne(url_reponse,9,",")
pos est un entier=Position(upload_url,":")
//On récupére le champ upload_url dans la réponse http
upload_url = Milieu(upload_url,pos+1)
upload_url = Replace(upload_url,"}","")
upload_url = Replace(upload_url,Caract(34),"")
//On récupére le champ file_url dans la réponse http
pos = Position(fichier_url,":")
fichier_url = Milieu(fichier_url,pos+1)
fichier_url = Replace(fichier_url,"}","")
fichier_url = Replace(fichier_url,Caract(34),"")

HTTPCréeFormulaire("ENVOI_FICHIER")
HTTPAjouteFichier("ENVOI_FICHIER", "file", image_a_envoyer)
SI PAS HTTPEnvoieFormulaire("ENVOI_FICHIER", upload_url, httpPost) ALORS
Ecrit_Log("Erreur Envoi du MMS PushBullet : "+ErreurInfo(errComplet)) //Envoi Err
FIN

//************* CURL Numéro 3
//curl --header 'Access-Token: <your_access_token_here>' --header 'Content-Type: application/json' --data-binary '{"data":{"addresses":
//["+13035551212"],"file_type":"image/jpeg","guid":"993aaa48567d91068e96c75a74644159","message":"Text message //body.","target_device_iden":"ujpah72o0sjAoRtnM0jc"},
//"file_url":"https://dl.pushbulletusercontent.comfoGfub1jtC6yYcOMACk1AbHwTrTKvrDc/john.jpg"}' --request POST https://api.pushbullet.com/v2/texts
//************* CURL Numéro 3
// Entête HTTP
MaHttp.Méthode = httpPost
MaHttp.Entête["Content-Type"] = "application/json"
MaHttp.URL = "https://api.pushbullet.com/v2/texts"
Données est un Variant
Données.data.target_device_iden = "<Mon_device_iden>" //Identifiant pushbullet du téléphone à utiliser
Données.data.addresses = [Numero_Telephone] //Numero_Telephone destinataire
Données.data.message = Message_Chaine //Message du MMS
Données.data.guid = DonneGUID(guidBrut) //Identifiant unique
Données.data.file_type = "image/jpeg"
Données.file_url = fichier_url //Url du fichier image dans le système pushbullet
MaHttp.Contenu = VariantVersJSON(Données)

cMaReponse = HTTPEnvoie(MaHttp)
SI ErreurDétectée ALORS
Ecrit_Log("Erreur Envoi du message PushBullet : "+ErreurInfo(errComplet)) //Envoi Err
SINON
IF cMaReponse..Contenu="{}" ALORS
Ecrit_Log("Envoi du message MMS pushbullet OK") //Envoi OK
ELSE
Ecrit_Log("Vérifiez Envoi du message MMS pushbullet : "+cMaReponse..Contenu) //Envoi OK avec réponse http
FIN
FIN
RENVOYER Vrai
Posté le 21 juin 2025 - 13:56
Trés bon travail !