Depuis la version 1.1.4 de smsuapi, le web-service est utilisable avec
- une authentification "basic"
- les paramètres passées en GET
Exemples simple d'envoi de SMS
curl -u user:xxx 'https://sms.univ.fr/esup-smsuapi/?action=SendSms&phoneNumber=0601010101&message=foo' curl -u user:xxx 'https://sms.univ.fr/esup-smsuapi/?action=SendSms&phoneNumber=0601010101&phoneNumber=0601010102&message=foo'
Exemple d'envoi de SMS puis consultation du statut de l'envoi
curl -u user:xxx 'https://sms.univ.fr/esup-smsuapi/?action=SendSms&phoneNumber=0601010101&message=foo'
La réponse à l'action "SendSms" est une structure de données simple en JSON. Voici un exemple de réponse :
{"status":"OK","id":123}
puis vous pouvez consulter l'état de l'envoi 123 :
curl -u user:xxx 'https://sms.univ.fr/esup-smsuapi/?action=MessageInfos&id=123'
La réponse à l'action "MessageInfos" est une structure de données simple en JSON. Voici un exemple de réponse :
{"nbDestTotal":1,"nbDestBlackList":1,"nbSentSMS":0,"nbProgressSMS":0,"nbErrorSMS":1,"listNumErreur":["0601010101"]}
Envoi en masse
Les paramètres GET ne permettent pas l'envoi à de nombreux numéros de téléphone. Dans ce cas utiliser une requête POST (exemple).
En java
Le plus simple est d'utiliser le jar esup-smsu-api disponible sur le repository maven. Ce jar contient la classe org.esupportail.smsuapi.services.client.HttpRequestSmsuapiWS.
Avec spring, on peut notamment faire un bean :
<bean id="httpRequestSmsuapiWS" class="org.esupportail.smsuapi.services.client.HttpRequestSmsuapiWS"> <property name="username" value="${smsuapi.ws.basic.auth.username}" /> <property name="password" value="${smsuapi.ws.basic.auth.password}" /> <property name="url" value="${smsuapi.ws.address}" /> </bean>
La classe HttpRequestSmsuapiWS s'occupe de tout. Exemple :
Int id = httpRequestSmsuapiWS.sendSms(null, "0601010101", "foo"); ... if (id != null) trackInfos = httpRequestSmsuapiWS.messageInfos(id);