PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → [WD23] Webservice Orange avec windev
[WD23] Webservice Orange avec windev
Débuté par Gilles Dormal, 07 mai 2019 11:45 - Aucune réponse
Posté le 07 mai 2019 - 11:45
Bonjour à tous,
le webservice Orange change et passe de soap a rest. Dans ce cadre, je modifie mes procédures d'appel pour envoyer mes infos correctement.

Je parviens a récupéré le token d'authentification, envoyer des sms et envoyer des mails.

(code d'envoi du mail d'exemple)
Procedure void_EnvoiMail(LOCAL access_token est une chaîne, LOCAL idgroupe est une chaîne)

maReqMail est un restRequête
mareponseMail est un restRéponse

maReqMail.URL = ChaîneConstruit("%1/v1.2/groups/%2/diffusion-requests", CST_ADRORANGE, idgroupe)
maReqMail..ContentType = "application/json"
maReqMail..Entête["Authorization"] = " bearer " + access_token
VariantJsonMail est un Variant //En 24, changer le type variant par JSON

EnvoiMail est un Variant

EnvoiMail.name = "diffusion TEST MAIL"
EnvoiMail.emails[1] = "EmailTest@entreprise.com"
EnvoiMail.emailParam.senderEmail = "noreply@ms.contactevery.one"
EnvoiMail.emailParam.senderName = "Moi Dev"
EnvoiMail.emailParam.body = "mon contenu email HTML"
EnvoiMail.emailParam.subject = "Mon objet de mail"

maReqMail.Contenu = VariantVersJSON(EnvoiMail)

maReqMail.Méthode = httpPost
mareponseMail = RESTEnvoie(maReqMail)

SI PAS ErreurDétectée ALORS
Info(mareponseMail.Contenu)
VariantJsonMail = JSONVersVariant(mareponseMail.Contenu)
SINON
Erreur(ErreurInfo(errMessage))
FIN


mon problème survient quand je souhaite ajouter une pièce jointe dans le mail.

L'api Orange est bien documentée avec des exemples de codes d'autres langages.

Créer une diffusion email avec pièces jointes
POST /api/v1.2/groups/:id-group/diffusion-requests

Une diffusion email peut comporter jusqu'à 5 pièces jointes (chacune avec un poids de 5Mo max et pour un poids total maximum de 5Mo).

Format de requête
Format de requête

La requête doit être une requête au format multipart/form-data avec comme parties :

partie diffusion (requis) : définition de la diffusion au format application/json,

partie attachment1 : pièce jointe #1,

partie attachment2 : pièce jointe #2,

partie attachment3 : pièce jointe #3,

partie attachment4 : pièce jointe #4,

partie attachment5 : pièce jointe #5.

- Query Parameters

Parameter       Type    Description
id-group        String  L'identifiant unique du groupe.


et du code d'exemple associé en C# par exemple.

var client = new RestClient("https://[SERVER_URL]/api/v1.2")
var request = new RestRequest("/groups/[id_group]/diffusion-requests", Method.POST);
request.AddHeader("Authorization", "Bearer [Access-Token]");
var json = @"{
    ""name"":""test Diff API"",
    ""emails"":[""johndoe@domain.com""],
    ""emailParam"":{
        "senderEmail":"johnthesender@domain.com",
        ""senderName"": ""John the sender"",
        ""body"": ""mon contenu email HTML"",
        ""subject"":""Mon objet de mail""
    }
}";
request.AddParameter("diffusion", json, "application/json", ParameterType.RequestBody);
request.AddFile("attachment1", @"c:\myFirstFile.jpg", "image/jpg");
request.AddFile("attachment2", @"c:\mySecondFile.txt", "plain/text");
IRestResponse r = client.Execute(request);


je souhaite si possible rester sur du windev car tout le reste fonctionne et c'est quand même pratique de rester sur le même environnement de dév pour tout.
pour une variable de type restRequête, il n'existe pas de "AddParameter" ni de "AddFile".
Je n'arrive donc pas a ajouter de pièce jointe.

Auriez vous une solution? (je possède la 24 au besoin)

merci d'avance.