IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Solutions d'entreprise Discussion :

Apprendre à envoyer des SMS avec l’API SMS d’Orange


Sujet :

Solutions d'entreprise

  1. #1
    Expert éminent sénior

    Avatar de Francis Walter
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    2 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 2 315
    Points : 26 889
    Points
    26 889
    Par défaut Apprendre à envoyer des SMS avec l’API SMS d’Orange
    Bonjour,

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

    Citation Envoyé par Introduction
    L’API SMS d’Orange disponible dans certains pays en zone d’Afrique et Moyen-Orient permet l'envoi et la réception de SMS vers les mobiles du monde entier, quel que soit l'opérateur. Il vous permet de toucher plus rapidement votre cible comparé à l’email.
    L’API peut être utile pour envoyer un accusé de réception d’une livraison, diffuser des informations à une liste de clients, souhaiter la bonne année à une liste de numéros, créer un groupe de discussion par SMS, organiser un sondage.
    Cet article vous expliquera en quelques étapes comment faire votre premier appel à l'API SMS en Node*js qui va récupérer le résultat de la requête au format JSON (JavaScript Object Notation) pour l’afficher dans votre application.

    Retrouvez les autres cours et tutoriels pour apprendre à programmer avec les APIs d'Orange
    Retrouvez tous les meilleurs cours et tutoriels Solution d'entreprise.
    Vous avez envie de contribuer au sein du Club Developpez.com ?

    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, ...etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 705
    Points : 4 783
    Points
    4 783
    Par défaut
    Cela fonctionne sur l'Europe ?
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  3. #3
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 674
    Points : 922
    Points
    922
    Par défaut
    Bonjour a tous

    S'il vous plait ne pourrait ton pas avoir de tuto aussi bien faite en php ?

    Merci à tous

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 42
    Points : 87
    Points
    87
    Par défaut
    Du coup on peut envoyer des sms avec n'importe quel numéro de téléphone ?? vers n'importe lequel ?

  5. #5
    Membre confirmé Avatar de steel-finger
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 180
    Points : 529
    Points
    529
    Par défaut
    Petit précision la fonction suivante : `new Buffer()` est déprécié il faut utilisé `Buffer.from()`

  6. #6
    Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Octobre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Octobre 2016
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Oscar.STEFANINI Voir le message
    Du coup on peut envoyer des sms avec n'importe quel numéro de téléphone ?? vers n'importe lequel ?
    @Oscar, il ne s'agit pas d'envoi de SMS à Partir d'un d'un téléphone. Nous parlons des SMS que vous pouvez envoyer à vos clients à partir de votre application.
    L'offre que nous vous proposons vois permets cependant d'envoyer des SMS à vos client quelque soit leur opérateur.

  7. #7
    Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Octobre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Octobre 2016
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par devalender Voir le message
    Bonjour a tous

    S'il vous plait ne pourrait ton pas avoir de tuto aussi bien faite en php ?

    Merci à tous
    @Devalender, merci de regarder ce tuto mise en ligne par des Developer ivoiriens

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 42
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par Orange_Partner Voir le message
    @Oscar, il ne s'agit pas d'envoi de SMS à Partir d'un d'un téléphone. Nous parlons des SMS que vous pouvez envoyer à vos clients à partir de votre application.
    L'offre que nous vous proposons vois permets cependant d'envoyer des SMS à vos client quelque soit leur opérateur.
    Merci beaucoup de votre réponse. après relecture de mon message, je me rends compte à quel point j'avais lu la news de travers. Bien à vous et merci de nous faire disposer d'api et d'en parler sur developpez.com

  9. #9
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 93
    Points : 166
    Points
    166
    Par défaut Code en WDlangage de Windev.
    Bonjour, pour exemple le code pour utiliser cette API Orange en WDlangage de Windev (testé en V20)

    Code Windev : Sélectionner tout - Visualiser dans une fenêtre à part
    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 - Visualiser dans une fenêtre à part
    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

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut En France ?
    Cela marche en France? je ne trouve pas l'API française sur le lien vers orange

  11. #11
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 93
    Points : 166
    Points
    166
    Par défaut
    Citation Envoyé par fabi75 Voir le message
    Cela marche en France? je ne trouve pas l'API française sur le lien vers orange
    Désolé je ne sais pas si cela fonctionne en Europe, mais j'ai bien l’impression que cela n'existe pas...
    Nom : 16-11-2016 13-05-45.png
Affichages : 9047
Taille : 14,5 Ko

  12. #12
    Expert éminent sénior

    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Avril 2002
    Messages
    2 789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 789
    Points : 18 927
    Points
    18 927
    Par défaut
    Citation Envoyé par fabi75 Voir le message
    Cela marche en France? je ne trouve pas l'API française sur le lien vers orange
    Non : L’API SMS d’Orange disponible dans certains pays en zone d’Afrique et Moyen-Orient
    Ne prenez pas la vie au sérieux, vous n'en sortirez pas vivant ...

  13. #13
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Points : 1 071
    Points
    1 071
    Par défaut
    Je suis presque sûr d'avoir récemment entendu un de mes clients me dire qu'ils envoyaient leurs SMS par Orange, et je serais bien étonné que ça n'existe pas en France.
    Par contre ce qui ne fait aucun doute, c'est que la version française doit naturellement être 20 à 30 plus compliquée que les autres.
    "API SMS Orange France" qui aurait évidemment été bien trop simple et efficace....
    Articles sur developpez.com
    - Gestion des exceptions avec PHP5
    - Chiffrement et hash en PHP contre l'attaque Man in the middle
    - Aedituus - Espace membre sécurisé en PHP5

  14. #14
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 93
    Points : 166
    Points
    166
    Par défaut
    Citation Envoyé par wamania Voir le message
    Je suis presque sûr d'avoir récemment entendu un de mes clients me dire qu'ils envoyaient leurs SMS par Orange, et je serais bien étonné que ça n'existe pas en France.
    Par contre ce qui ne fait aucun doute, c'est que la version française doit naturellement être 20 à 30 plus compliquée que les autres.
    "API SMS Orange France" qui aurait évidemment été bien trop simple et efficace....
    Bonjour
    Au Sénégal, (par exemple) pour s'inscrire et obtenir les codes, il faut fournir des pièces d'identité et les statuts de la société puis on paye avec une CB en Franc CFCA. Donc pour pouvoir le faire d'Europe il suffit de passer par une société Sénégalaise, il y n'y a pas de contrôle sur l'adresse IP de l'expéditeur des requêtes HTTP par rapport au pays...

  15. #15
    Candidat au Club
    Homme Profil pro
    développeur d'application
    Inscrit en
    Mai 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : développeur d'application
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2015
    Messages : 3
    Points : 4
    Points
    4
    Par défaut [Orange] API SMS pour envoyer des SMS depuis Internet à plusieurs destinataires
    0U

  16. #16
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 93
    Points : 166
    Points
    166
    Par défaut API ORANGE - SMS
    Bonjour,
    Je suis quasiment sur que cela n'est pas possible directement, il faut passer par une procédure qui va envoyer les sms un par un.

  17. #17
    Community Manager

    Profil pro
    Inscrit en
    Avril 2014
    Messages
    4 207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2014
    Messages : 4 207
    Points : 13 060
    Points
    13 060
    Par défaut
    Bonjour à tous,

    Un sondage pour partager votre retour d'expérience sur l'API SMS d'Orange

    Pour contacter les différents services du club (publications, partenariats, publicité, ...) : Contacts

  18. #18
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2019
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bonjour
    je suis beaucoup intéressé par ce code en wlangage,
    j'utilise W20 en Cote d'ivoire mais lorsque j’exécute la procédure, voici le message qui s'affiche.

    merci de bien vouloir m'aider

    Nom : Bug.png
Affichages : 1800
Taille : 12,2 Ko

  19. #19
    Nouveau Candidat au Club
    Homme Profil pro
    Informatique
    Inscrit en
    Août 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Informatique

    Informations forums :
    Inscription : Août 2017
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Actualisation du code en wlanguage
    Bonjour Suite au précèdent code d'envoi de sms j'apporte ma modeste contribution a l'évolution du code
    il s'agit de modifier le body comme suit :

    Code WinDev : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Body = [
    	{
    		"outboundSMSMessageRequest":{
    			 "address":"tel:%2",
    			"senderAddress":"tel:+%1",
    			"outboundSMSTextMessage":{
    			"message":"%3"
    			}
    		}
    	}
    ]
    Body = ChaîneConstruit(Body, SenderAddress, ReceiverAdress, MessageSMS)

  20. #20
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 29
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par PhilDeDakar Voir le message
    Bonjour, pour exemple le code pour utiliser cette API Orange en WDlangage de Windev (testé en V20)

    Code Windev : Sélectionner tout - Visualiser dans une fenêtre à part
    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 - Visualiser dans une fenêtre à part
    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
    Bonjour
    Comment faire quand (ExtraitChaîne(ResEntêteApi,1,RC)) donne comme valeur HTTP/1.1 40 au lieu de HTTP/1.1 200 ?

Discussions similaires

  1. Envoyer des caractères spéciaux en SMS.
    Par kika10 dans le forum Mobiles
    Réponses: 2
    Dernier message: 27/08/2013, 19h39
  2. Envoyer des email avec PHP
    Par dolf13 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 12/07/2006, 11h49
  3. [PHP-JS] envoyer des données avec un boutton hidden
    Par moonia dans le forum Langage
    Réponses: 22
    Dernier message: 23/06/2006, 17h30
  4. Réponses: 1
    Dernier message: 15/05/2006, 19h05
  5. envoyer des images avec access
    Par dan664 dans le forum Access
    Réponses: 6
    Dernier message: 13/10/2005, 22h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo