Bonjour, pour exemple le code pour utiliser cette API Orange en WDlangage de Windev (testé en V20)
// 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
// 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
0 |
0 |