SMS HTTP API
Grazie alle SMS HTTP API puoi integrare il tuo software con il nostro gateway SMS in modo semplice e rapido.
Le HTTP API si basano su semplici chiamate HTTP GET quindi per l'integrazione potrai utilizzare un Client HTTP scritto in un qualsiasi linguaggio di programmazione.
Tramite le HTTP API sono possibili le seguenti operazioni:
- inviare SMS
- cercare e visualizzare il dettaglio degli SMS inviati
- visualizzare i dati relativi al proprio profilo direttamente dalla piattaforma Smshosting
Url base dei servizi
L'indirizzo base da utilizzare per accedere alle HTTP API è il seguente
oppure per i rivenditori
Per motivi di sicurezza le HTTP API utilizzano il solo protocollo HTTPS (il protocollo HTTP non è supportato).
Effettuare una richiesta
Tutte le richiesta alle HTTP API necessitano di essere autenticate tramite 2 parametri passati in GET authKey e authSecret.
Questi parametri vanno valorizzati con i codici AUTH_KEY e AUTH_SECRET associati al tuo account Smshosting.
👉 Visita la sezione gestione sicurezza API nella tua area riservata per recuperare tali valori.
Puoi testare le tue credenziali chiamando semplicemente da browser il seguente URL:
oppure eseguendo da shell Linux il comando
Nel caso l'autenticazione non vada a buon fine viene restituito l'errore HTTP 400.
Tutte le richieste alle HTTP API devono essere encodate in UTF-8.
Scegliere il formato di risposta
Le REST API di Smshosting possono restituire le informazioni sia nel formato JSON (default) sia XML.
Per ottenere la risposta nel formato desiderato utilizza l'header HTTP "Accept" nella tua richiesta.
Accept:application/json per ottenere un JSON
curl -H "Accept: application/json" https://api.smshosting.it/rest/api/smart/user?authKey=[AUTH_KEY]&authSecret=[AUTH_SECRET]
Accept:application/xml per ottenere un XML
curl -H "Accept: application/xml" https://api.smshosting.it/rest/api/smart/user?authKey=[AUTH_KEY]&authSecret=[AUTH_SECRET]
Gestire la risposta
Codici di risposta (HTTP Status Code)
Per ogni richiesta le HTTP API restituiscono uno dei seguenti HTTP Status Code:
200
- Richiesta completata correttamente
400
- Parametro mancante o autenticazione fallita
404
- Risorsa non trovata
405
- Metodo HTTP non consentito
500
- Errore imprevisto del server
Contenuto risposta
Ad ogni chiamata HTTP GET completata con successo (HTTP status uguale a 200) le REST API restituiscono come contenuto un JSON/XML.
Se una chiamata dovesse terminare con un errore (HTTP status diverso da 200) viene restituito un JSON/XML esplicativo dell'errore:
errorCode
- Codice HTTP status
errorMsg
- Codice di errore esplicativo del problema occorso
Ad esempio, nel caso l'autenticazione fallisca, le REST API restituiscono un HTTP Status 400 e come contenuto:
{ "errorMsg":"BAD_CREDENTIALS", "errorCode":400 }
Paginazione
Alcune risorse (ricerca sms inviati o ricevuti, ricerca contatti, etc.) restituiscono i risultati paginati.
Ad esempio la ricerca sms inviati restiruisce il seguente JSON:
{ "metadata":{ "count":1, "offset":0, "limit":20 }, "smsList":[ { "id":389395385, "to":"393480000000", "text":"Test Sms", "from":"mrossi", "status":"DELIVERED", "insertDate":"2014-01-13T15:01:35+0100", "sentDate":"2014-01-13T15:01:37+0100", "deliveryDate":"2014-01-13T15:01:40+0100", "transactionId":"72810108d4114097b9edb42b255b273c", "price":0.0945 } ] }
Il campo metadata
contiene le informazioni utili a gestire la paginazione dei risultati.
La proprietà count
indica il numero totale di risultati trovati per quella ricerca.
I campi offset
e limit
indicano rispettivamente l'indice del primo risultato ed il numero di risultati restituiti dalla chiamata.
Offset
e limit
possono essere usati come parametri nella richiesta in modo da controllare il range di risultati restituiti.
Ad esempio se una ricerca trova 100 risultati e la dimensione della pagina è di 20 elementi:
{ "metadata":{ "count":100, "offset":0, "limit":20 }, ....... }
sarà possibile ottenere 5 pagine usando i seguenti valori di offset
e limit
:
pagina 1 - offset=0&limit=20
pagina 2 - offset=20&limit=20
pagina 3 - offset=40&limit=20
pagina 4 - offset=60&limit=20
pagina 5 - offset=80&limit=20