
Je vous présente un article sur l'envoie de SMS avec l'API SMS de Orange.



Une erreur dans cette actualité ? Signalez-nous-la !
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Code Windev : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | // API Orange : Récupération du nombre d'unité disponible i,j est un entier ExpirationTime est un entier sans signe UrlToken, ClientID, ClientSecret, AuthorizationHeader, EntêteHTTPsupplémentaire, Body, ResEntêteApi, ResApi, Tag sont des chaînes Token, UrlSendSMS est une chaîne stResApiJson est une Structure country est une chaîne service est une chaîne contractId est une chaîne availableUnits est un entier expires est une chaîne scDescription est une chaîne END MyBuffer est un Buffer MyResApiJson est une stResApiJson //----- Demande un jeton UrlToken = "https://api.orange.com/oauth/v2/token" ClientID = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ClientSecret = "xxxxxxxxxxxxxxxxx" AuthorizationHeader = "Basic " + Crypte(ClientID + ":" + ClientSecret, "", crypteAucun, encodeBASE64) EntêteHTTPsupplémentaire = "Authorization: " + AuthorizationHeader Body = [ grant_type=client_credentials ] Token = "" IF HTTPRequête(UrlToken, "", EntêteHTTPsupplémentaire, Body) THEN ResEntêteApi = HTTPDonneRésultat(httpEntête) IF ExtraitChaîne(ResEntêteApi,1,RC) = "HTTP/1.1 200 OK" THEN ResApi = HTTPDonneRésultat(httpRésultat) Token = ExtraitChaîne(ExtraitChaîne(ResApi, 4,Caract(10)), 4, Caract(34)) ExpirationTime = Val(ExtraitChaîne(Remplace(ExtraitChaîne(ResApi,5, Caract(0x0a)),TAB,""),4,Caract(34))) END ELSE Info( ErreurInfo(errMessage)) STOP END //----- Envoie la demande UrlSendSMS = "https://api.orange.com/sms/admin/v1/contracts" EntêteHTTPsupplémentaire = "Authorization: Bearer " + Token IF HTTPRequête(UrlSendSMS, "", EntêteHTTPsupplémentaire, "") THEN ResEntêteApi = HTTPDonneRésultat(httpEntête) ResApi = HTTPDonneRésultat(httpRésultat) IF ExtraitChaîne(ResEntêteApi, 1, RC) = "HTTP/1.1 200 OK" THEN Tag = [ "country":"SEN" ] i = Position(ResApi, Tag) IF i > 0 THEN j = Position(ResApi, "}", i) IF j > 0 THEN MyBuffer = ResApi[[i-1 A j]] MyResApiJson:country = "" MyResApiJson:service = "" MyResApiJson:contractId = "" MyResApiJson:availableUnits = -1 MyResApiJson:expires = "" MyResApiJson:scDescription = "" Désérialise(MyResApiJson, MyBuffer,psdJSON) Info(ChaîneConstruit("il reste %1 unité(s)",MyResApiJson:availableUnits)) ELSE Erreur("La structure de la réponse est incorrecte !") END ELSE Erreur(ChaîneConstruit("Tag : %1 not found !", Tag)) END ELSE Erreur(ResEntêteApi) END ELSE Trace(ErreurInfo(errMessage)) END |
Code Windev : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | // API Orange : Envoyer un sms ExpirationTime est un entier sans signe UrlToken, ClientID, ClientSecret, AuthorizationHeader, EntêteHTTPsupplémentaire, Body, ResEntêteApi, ResApi sont des chaînes Token, SenderAddress, SenderName, ReceiverAdress, UrlSendSMS, TypeDuMessage, MessageSMS est une chaîne //----- Demande un jeton UrlToken = "https://api.orange.com/oauth/v2/token" ClientID = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ClientSecret = "xxxxxxxxxxxxxxxxx" AuthorizationHeader = "Basic " + Crypte(ClientID + ":" + ClientSecret, "", crypteAucun, encodeBASE64) EntêteHTTPsupplémentaire = "Authorization: " + AuthorizationHeader Body = [ grant_type=client_credentials ] Token = "" IF HTTPRequête(UrlToken, "", EntêteHTTPsupplémentaire, Body) THEN ResEntêteApi = HTTPDonneRésultat(httpEntête) IF ExtraitChaîne(ResEntêteApi,1,RC) = "HTTP/1.1 200 OK" THEN ResApi = HTTPDonneRésultat(httpRésultat) Token = ExtraitChaîne(ExtraitChaîne(ResApi, 4,Caract(10)), 4, Caract(34)) ExpirationTime = Val(ExtraitChaîne(Remplace(ExtraitChaîne(ResApi,5, Caract(0x0a)),TAB,""),4,Caract(34))) ELSE END ELSE Info( ErreurInfo(errMessage)) STOP END //----- Envoie un sms SenderAddress = "33123456789" // sans le + mais avec l'indicatif 33=France 221=Sénégal SenderName = "Philippe" ReceiverAdress = "+221013456789" MessageSMS = "Il est " + HeureVersChaîne(HeureSys(),"hh:mm:ss") UrlSendSMS = "https://api.orange.com/smsmessaging/v1/outbound/tel%3A%2B" + SenderAddress + "/requests" EntêteHTTPsupplémentaire = "Authorization: Bearer " + Token // attention aux espaces 1 seul après ":" et après "Bearer" Body = [ { "outboundSMSMessageRequest":{ "address":"tel:%3", "outboundSMSTextMessage":{ "message":"%4" }, "senderAddress":"tel:+%1", "senderName":"%2" } } ] Body = ChaîneConstruit(Body, SenderAddress, SenderName, ReceiverAdress, MessageSMS) TypeDuMessage = "application/json" IF HTTPRequête(UrlSendSMS, "", EntêteHTTPsupplémentaire, Body, TypeDuMessage) THEN ResEntêteApi = HTTPDonneRésultat(httpEntête) ResApi = HTTPDonneRésultat(httpRésultat) IF ExtraitChaîne(ResEntêteApi,1,RC) = "HTTP/1.1 201 Created" THEN Info("SMS envoyé.....") ELSE Erreur(ResEntêteApi) END ELSE Trace(ErreurInfo(errMessage)) END |
![]() |
![]() |