Invio di un sms ad uno o più destinatari singoli o verso uno o più gruppi della rubrica.
È possibile testare l'invio valorizzando il parametro sandbox
a true nella richiesta.
Il parametro statusCallback
consente di registrare un URL al quale sarà inviata via HTTP una notifica con lo stato(Consegnato,Non Consegnato) del Sms.
Per maggiori informazioni fare riferimento alla tabella parametri sottostante.
Parametro | Obbligatorio | Tipo | Descrizione |
---|---|---|---|
from | No | String |
Il mittente del Sms. Può essere un numero di telefono validato oppure una stringa alfanumerica di 11 caratteri. Se non specificato viene usato il mittente di default del proprio profilo. Per utilizzare un mittente alfanumerico è obbligatoria la registrazione dello stesso, questa procedura può essere effettuata dal nostro pannello web oppure via API. I mittenti non verificati verranno rimpiazzati con un mittente numerico casuale. |
to |
No (Obbligatorio valorizzare almeno uno tra il campo to e group) |
String |
Il destinatario del messaggio. Deve essere un numero di cellulare compreso di prefisso internazionale. Ad esempio: 393481234567 oppure 393481234567,393481234568,393481234568 Alternativamente il parametro può essere valorizzato con un array JSON contenente gli oggetti che descrivono il destinatario. Ad esempio: [{msisdn:'393481234567'},{msisdn:'393481234568'},{msisdn:'393481234568'}] |
group |
No (Obbligatorio valorizzare almeno uno tra il campo to e group) |
String |
Id del gruppo in Rubrica al quale inviare È possibile specificare più gruppi della rubrica separandoli con il carattere virgola ",". Ad esempio se nellla rubrica sono presenti i gruppi Amici(id=1) e Scuola(id=2) sarà possibile indicare: 1 oppure 1,2 |
text | Si | String |
Testo del messaggio. Se il messaggio supera i 160 caratteri vengono inviati più sms concatenati fino ad una massimo di 7. Il testo può contenere dei placeholder che saranno sostituiti in fase di invio dai valori associati al rispettivo destinatario. Il placeholder va specificato con la sintassi ${nome proprietà} Nel caso il testo contenga dei placeholder il campo to deve essere valorizzato con un array JSON ed ogni oggetto dell'array deve contenere la proprietà indicata nel placeholder. Ad esempio: to=[{msisdn:'393481234567',nome:'Mario Rossi'},{msisdn:'393481234568',nome:'Luigi Bianchi'}] text=Invio sms di test a ${nome} |
date | No | String |
Sms differito Data (in formato yyyy-MM-ddTHH:mm:ssZ) alla quale sarà inviato il messaggio.Se non viene specificato alcun valore il messaggio viene inviato immediatamente. Ad esempio: 2014-12-25T08:00:00+0200 indica il 25/12/2014 alle 08:00:00 riferito al GMT +2 |
transactionId | No | String |
Un identificatore personale dell'invio. Consente di assegnare a tutti gli sms inviati con una chiamata lo stesso identificatore in modo da utilizzare questo parametro per ricevere lo stato dei messaggi. massimo 60 caratteri |
sandbox | No | String |
Consente di testare la chiamata senza inviare effettivamente il messaggio. Parametro utile in fase di sviluppo di eventuali integrazioni con le REST API. Possibili valori true/false |
statusCallback | No | String |
URL al quale sarà inviata via HTTP una notifica con lo stato(Consegnato,Non Consegnato) del Sms |
encoding | No | String |
L'encoding da utilizzare per il testo del messaggio. I possibili valori sono: 7BIT - Encoding standard per i messaggi GSM. La lunghezza massima per un singolo sms è di 160 caratteri. UCS2 - Encoding a 8-bit per inviare messaggi GSM con contenuto non ASCII. La lunghezza massima per un singolo sms è di 70 caratteri. AUTO - L'encoding da utilizzare viene automaticamente identificato in base al contenuto del campo testo. Default : 7BIT |
HTTP Status Code
Codice | Descrizione |
---|---|
200 | ok |
400 |
Parametri non validi I possibili
BAD_TEXT_PLACEHOLDER - text contiene dei placeholder non sostituibili
|
401 | Credenziali non valide |
405 | Metodo HTTP non consentito |
500 | Errore generico |
Dati Invio
Proprietà | Descrizione |
---|---|
from | Il mittente del messaggio. |
text | Testo Sms |
transactionId |
identificatore dell'invio Se non specificato in fase di richiesta verrà generato un transactionId automaticamente dalle REST API |
smsInserted | Numero Sms inseriti |
smsNotInserted | Numero Sms Non inseriti |
sms |
Lista degli Sms. Ogni sms è descritto dalla proprietà: to - numero di cellulare al quale è stato inviato il messaggio id - id interno del messaggio.Valore utile per richiedere lo stato del messaggio con la funzione di Cerca Sms status - Stato del messaggio. Viene valorizzato ad statusDetail - nel caso il messaggio non venga inserito (status = |
Esempio:
curl --user AUTH_KEY:AUTH_SECRET -XPOST https://api.smshosting.it/rest/api/sms/send \ -d "from=mrossi" \ -d "to=393480000000" \ -d "text=Test Sms"
HttpResponse sms_send_response = Unirest.post("https://api.smshosting.it/rest/api/sms/send") .basicAuth(SMS_AUTH_KEY, SMS_SECRET_KEY) .field("to", "393470000000") .field("text", "Ciao") .asJson();
Unirest\Request::auth(SMS_AUTH_KEY, SMS_SECRET_KEY); $headers = array( 'Accept' => 'application/json' ); $data = array( 'to' => '393470000000', 'text' => 'ciao' ); $body = Unirest\Request\Body::form($data); $response = Unirest\Request::post('https://api.smshosting.it/rest/api/sms/send', $headers, $body);
response = unirest.post( "https://api.smshosting.it/rest/api/sms/send", headers={ "Accept": "application/json" }, auth=(SMS_AUTH_KEY, SMS_SECRET_KEY), params={ "to": "393470000000", "text": urllib.quote("ciao") } )
String body = ""; body = body + "&from=" + HttpUtility.UrlEncode(tbSmsSendFrom.Text); body = body + "&to=" + HttpUtility.UrlEncode(tbSmsSendTo.Text); body = body + "&group=" + HttpUtility.UrlEncode(tbSmsSendGroup.Text); body = body + "&text=" + HttpUtility.UrlEncode(tbSmsSendText.Text); body = body + "&date=" + HttpUtility.UrlEncode(tbSmsSendDate.Text); body = body + "&transactionId=" + HttpUtility.UrlEncode(tbSmsSendTransaction.Text); body = body + "&sandbox=" + tbSmsSendSandbox.Checked; body = body + "&statusCallback=" + HttpUtility.UrlEncode(tbSmsSendCallback.Text); body = body + "&encoding=" + HttpUtility.UrlEncode(tbSmsSendCallback.Text); HttpResponse jsonResponse = Unirest.post(tbSmsSendUrl.Text) .header("Content-Type", "application/x-www-form-urlencoded") .header("Accept", tbSmsSendAccept.Text) .basicAuth(tbAuth_key.Text, tbAuth_secret.Text) .body(body) .asString();
{ "from":"mrossi", "text":"Test Sms", "transactionId":"d41ebeeb38b6a04818aa707818d3161e", "smsInserted":1, "smsNotInserted":0, "sms":[ { "id":389310742, "to":"393412345678", "status":"INSERTED" } ] }
Modalità di invio sms asincrono da utilizzare con un numero elevato di destinatari (Più di 1000 destinatari per singola richiesta).
Una volta inviata la richiesta viene restituito un transactionId utile ad identificare sucessivamente gli sms.
Nel caso l'invio non possa essere completato a causa di un errore verrà inviata un'email contentente il codice di errore verificatosi
I parametri della richiesta sono gli stessi di Invio SMS
Addizionalmente l'invio bulk prevede questi parametri
Parametro | Obbligatorio | Tipo | Descrizione |
---|---|---|---|
transactionCallback | No | String |
URL al quale sarà inviata via HTTP una notifica con lo stato complessivo dell'invio |
HTTP Status Code
Codice | Descrizione |
---|---|
200 | ok |
400 |
Parametri non validi I possibili
BAD_TEXT_PLACEHOLDER - text contiene dei placeholder non sostituibili
|
401 | Credenziali non valide |
405 | Metodo HTTP non consentito |
500 | Errore generico |
Dati Invio
Proprietà | Descrizione |
---|---|
from | Il mittente del messaggio. |
text | Testo Sms |
transactionId |
identificatore dell'invio Se non specificato in fase di richiesta verrà generato un transactionId automaticamente dalle REST API |
Esempio:
curl --user AUTH_KEY:AUTH_SECRET -XPOST https://api.smshosting.it/rest/api/sms/sendbulk \ -d "from=mrossi" \ -d "to=393480000000" \ -d "text=Test Sms"
HttpResponse sms_sendbulk_response = Unirest.post("https://api.smshosting.it/rest/api/sms/sendbulk") .basicAuth(SMS_AUTH_KEY, SMS_SECRET_KEY) .field("to", "393470000000") .field("text", "Ciao") .asJson();
Unirest\Request::auth(SMS_AUTH_KEY, SMS_SECRET_KEY); $headers = array( 'Accept' => 'application/json' ); $data = array( 'to' => '393470000000', 'text' => 'ciao' ); $body = Unirest\Request\Body::form($data); $response = Unirest\Request::post('https://api.smshosting.it/rest/api/sms/sendbulk', $headers, $body);
response = unirest.post( "https://api.smshosting.it/rest/api/sms/sendbulk", headers={ "Accept": "application/json" }, auth=(SMS_AUTH_KEY, SMS_SECRET_KEY), params={ "to": "393470000000", "text": "ciao" } )
String body = ""; body = body + "&from=" + HttpUtility.UrlEncode(tbSmsSendbulkFrom.Text); body = body + "&to=" + HttpUtility.UrlEncode(tbSmsSendbulkTo.Text); body = body + "&group=" + HttpUtility.UrlEncode(tbSmsSendbulkGroup.Text); body = body + "&text=" + HttpUtility.UrlEncode(tbSmsSendbulkText.Text); body = body + "&date=" + HttpUtility.UrlEncode(tbSmsSendbulkDate.Text); body = body + "&transactionId=" + HttpUtility.UrlEncode(tbSmsSendbulkTransaction.Text); body = body + "&sandbox=" + tbSmsSendbulkSandbox.Checked; body = body + "&statusCallback=" + HttpUtility.UrlEncode(tbSmsSendbulkCallback.Text); body = body + "&encoding=" + HttpUtility.UrlEncode(tbSmsSendbulkEncoding.Text); HttpResponse jsonResponse = Unirest.post(tbSmsSendbulkUrl.Text) .header("Content-Type", "application/x-www-form-urlencoded") .header("Accept", tbSmsSendbulkAccept.Text) .basicAuth(tbAuth_key.Text, tbAuth_secret.Text) .body(body) .asString();
{ "from":"mrossi", "text":"Test Sms", "transactionId":"e51ea840fc7276922ac61b733027301d" }
Invio di un SMS con contenuto binario.
Note sulle lunghezza del messaggio:
La lunghezza massima di un singolo SMS binario è di 140 byte (280 caratteri espressi in formato esadecimale)
Specificando un testo più lungo verranno inviati SMS concatenati. Lo spazio a disposizione per gli SMS concatenati è di 134 byte per SMS (268 caratteri espressi in formato esadecimale)
I parametri della richiesta sono gli stessi di Invio SMS con le seguenti variazioni
Parametro | Obbligatorio | Tipo | Descrizione |
---|---|---|---|
text | Si | String |
Contenuto binario del messaggio espresso come stringa esadecimale. Ogni byte deve essere rappresentato con un valore esadecimale di due caratteri. Ad esempio:
|
udh | No | String |
Campo facoltativo contenente l'UDH (User Data Header) del messaggio in formato esadecimale. Ad esempio:
|
pid | No | Integer |
Campo facoltativo contenente l'id protocollo (Protocol identifier) da utilizzare in formato decimale. |
HTTP Status Code
Codice | Descrizione |
---|---|
200 | ok |
400 |
Parametri non validi I possibili
BAD_TEXT_PLACEHOLDER - text contiene dei placeholder non sostituibili
|
401 | Credenziali non valide |
405 | Metodo HTTP non consentito |
500 | Errore generico |
Dati Invio
I dati di invio ritornati sono gli stessi di Invio SMS
Esempio:
curl --user AUTH_KEY:AUTH_SECRET -XPOST https://api.smshosting.it/rest/api/sms/sendbinary \ -d "from=mrossi" \ -d "to=393480000000" \ -d "text=0fc24abf3413ba"
HttpResponse sms_sendbulk_response = Unirest.post("https://api.smshosting.it/rest/api/sms/sendbinary") .basicAuth(SMS_AUTH_KEY, SMS_SECRET_KEY) .field("to", "393470000000") .field("text", "0fc24abf3413ba") .asJson();
Unirest\Request::auth(SMS_AUTH_KEY, SMS_SECRET_KEY); $headers = array( 'Accept' => 'application/json' ); $data = array( 'to' => '393470000000', 'text' => '0fc24abf3413ba' ); $body = Unirest\Request\Body::form($data); $response = Unirest\Request::post('https://api.smshosting.it/rest/api/sms/sendbinary', $headers, $body);
response = unirest.post( "https://api.smshosting.it/rest/api/sms/sendbinary", headers={ "Accept": "application/json" }, auth=(SMS_AUTH_KEY, SMS_SECRET_KEY), params={ "to": "393470000000", "text": "0fc24abf3413ba" } )
String body = ""; body = body + "&from=" + HttpUtility.UrlEncode(tbSmsSendbinFrom.Text); body = body + "&to=" + HttpUtility.UrlEncode(tbSmsSendbinTo.Text); body = body + "&group=" + HttpUtility.UrlEncode(tbSmsSendbinGroup.Text); body = body + "&text=" + HttpUtility.UrlEncode(tbSmsSendbinText.Text); body = body + "&date=" + HttpUtility.UrlEncode(tbSmsSendbinDate.Text); body = body + "&transactionId=" + HttpUtility.UrlEncode(tbSmsSendbinTransaction.Text); body = body + "&sandbox=" + tbSmsSendbinSandbox.Checked; body = body + "&statusCallback=" + HttpUtility.UrlEncode(tbSmsSendbinCallback.Text); body = body + "&encoding=" + HttpUtility.UrlEncode(tbSmsSendbinEncoding.Text); HttpResponse jsonResponse = Unirest.post(tbSmsSendbinUrl.Text) .header("Content-Type", "application/x-www-form-urlencoded") .header("Accept", tbSmsSendbinAccept.Text) .basicAuth(tbAuth_key.Text, tbAuth_secret.Text) .body(body) .asString();
{ "from":"mrossi", "text":"0fc24abf3413ba", "transactionId":"e51ea840fc7276922ac61b733027301d" }
Calcolo del credito necessario per un invio SMS
Parametro | Obbligatorio | Tipo | Descrizione |
---|---|---|---|
from | No | String |
Il mittente del Sms. Può essere un numero di telefono validato oppure una stringa alfanumerica di 11 caratteri. Se non specificato viene usato il mittente di default del proprio profilo. |
to |
No (Obbligatorio valorizzare almeno uno tra il campo to e group) |
String |
Il destinatario del messaggio. Deve essere un numero di cellulare compreso di prefisso internazionale. Ad esempio: 393481234567 oppure 393481234567,393481234568,393481234568 |
group |
No (Obbligatorio valorizzare almeno uno tra il campo to e group) |
String |
Id del gruppo in Rubrica al quale inviare È possibile specificare più gruppi della rubrica separandoli con il carattere virgola ",". Ad esempio se nellla rubrica sono presenti i gruppi Amici(id=1) e Scuola(id=2) sarà possibile indicare: 1 oppure 1,2 |
text | Si | String |
Testo del messaggio. Se il messaggio superai 160 caratteri vengono inviati più sms concatenati fino ad una massimo di 7. |
encoding | No | String |
L'encoding da utilizzare per il testo del messaggio. I possibili valori sono: 7BIT - Encoding standard per i messaggi GSM. La lunghezza massima per un singolo sms è di 160 caratteri. UCS2 - Encoding a 8-bit per inviare messaggi GSM con contenuto non ASCII. La lunghezza massima per un singolo sms è di 70 caratteri. AUTO - L'encoding da utilizzare viene automaticamente identificato in base al contenuto del campo testo. Default : 7BIT |
HTTP Status Code
Codice | Descrizione |
---|---|
200 | ok |
400 |
Parametri non validi I possibili
|
401 | Credenziali non valide |
405 | Metodo HTTP non consentito |
500 | Errore generico |
Dati relativi al preventivo
Proprietà | Descrizione |
---|---|
cost | Costo dell'invio |
userCredit | Credito residuo dell'utente |
smsCount | Numero di sms da inviare |
Esempio:
curl --user AUTH_KEY:AUTH_SECRET -XPOST https://api.smshosting.it/rest/api/sms/estimate \ -d "from=mrossi" \ -d "to=393480000000" \ -d "text=Test Sms"
HttpResponse sms_estimate_response = Unirest.post("https://api.smshosting.it/rest/api/sms/estimate") .basicAuth(SMS_AUTH_KEY, SMS_SECRET_KEY) .field("to", "393470000000") .field("text", "Ciao") .asJson();
Unirest\Request::auth(SMS_AUTH_KEY, SMS_SECRET_KEY); $headers = array( 'Accept' => 'application/json' ); $data = array( 'to' => '393470000000', 'text' => 'ciao' ); $body = Unirest\Request\Body::form($data); $response = Unirest\Request::post('https://api.smshosting.it/rest/api/sms/estimate', $headers, $body);
response = unirest.post( "https://api.smshosting.it/rest/api/sms/estimate", headers={ "Accept": "application/json" }, auth=(SMS_AUTH_KEY, SMS_SECRET_KEY), params={ "to": "393470000000", "text": "ciao" } )
String body = ""; body = body + "&from=" + HttpUtility.UrlEncode(tbSmsEstimateFrom.Text); body = body + "&to=" + HttpUtility.UrlEncode(tbSmsEstimateTo.Text); body = body + "&group=" + HttpUtility.UrlEncode(tbSmsEstimateGroup.Text); body = body + "&text=" + HttpUtility.UrlEncode(tbSmsEstimateText.Text); body = body + "&encoding=" + HttpUtility.UrlEncode(tbSmsEstimateEncoding.Text); HttpResponse jsonResponse = Unirest.post(tbSmsEstimateUrl.Text) .header("Content-Type", "application/x-www-form-urlencoded") .header("Accept", tbSmsEstimateAccept.Text) .basicAuth(tbAuth_key.Text, tbAuth_secret.Text) .body(body) .asString();
{ "cost":0.095, "userCredit":15.484,
"smsCount":2 }
Annulla l'invio di un SMS non ancora inviato.
Questo metodo è utile per annullare un invio differito
Parametro | Obbligatorio | Tipo | Descrizione |
---|---|---|---|
id | No * | String |
Id interno del messaggio inviato È possibile specificare più id separandoli con il carattere virgola ",". Ad esempio: 12312 oppure 432432,543543,435435 |
transactionId |
No * |
String | TransactionId assegnato all'invio |
* È richiesto che almeno un parametro sia valorizzato
HTTP Status Code
Codice | Descrizione |
---|---|
200 | ok |
400 |
Parametri non validi I possibili
|
401 | Credenziali non valide |
405 | Metodo HTTP non consentito |
500 | Errore generico |
La chiamata ritorna la lista degli sms annullati.
Per il dettaglio delle proprietà di ogni singolo sms vedi la funzione Cerca Sms.
Esempio:
curl --user AUTH_KEY:AUTH_SECRET -XPOST https://api.smshosting.it/rest/api/sms/cancel \ -d "id=389451366"
HttpResponse sms_cancel_response = Unirest.post("https://api.smshosting.it/rest/api/sms/cancel") .basicAuth(SMS_AUTH_KEY, SMS_SECRET_KEY) .field("id", "419853396") .asJson();
Unirest\Request::auth(SMS_AUTH_KEY, SMS_SECRET_KEY); $headers = array( 'Accept' => 'application/json' ); $data = array( 'id' => '419853396' ); $body = Unirest\Request\Body::form($data); $response = Unirest\Request::post('https://api.smshosting.it/rest/api/sms/cancel', $headers, $body);
response = unirest.post( "https://api.smshosting.it/rest/api/sms/cancel", headers={ "Accept": "application/json" }, auth=(SMS_AUTH_KEY, SMS_SECRET_KEY), params={ "id": "419853396" } )
String body = ""; body = body + "&id=" + HttpUtility.UrlEncode(tbSmsCancelId.Text); body = body + "&transactionId=" + HttpUtility.UrlEncode(tbSmsCancelTransaction.Text); HttpResponse jsonResponse = Unirest.post(tbSmsCancelUrl.Text) .header("Content-Type", "application/x-www-form-urlencoded") .header("Accept", tbSmsCancelAccept.Text) .basicAuth(tbAuth_key.Text, tbAuth_secret.Text) .body(body) .asString();
[ { "id":389451366, "to":"393480000000", "text":"Test Sms", "from":"mrossi", "status":"NOSENT", "insertDate":"2014-01-16T13:46:11+0100", "transactionId":"1389876345449", "price":0.0 } ]
Ricerca degli sms inviati.
Parametro | Obbligatorio | Tipo | Descrizione |
---|---|---|---|
id | No * | String |
Id interno del messaggio inviato È possibile specificare più id separandoli con il carattere virgola ",". Ad esempio: 12312 oppure 432432,543543,435435 |
transactionId |
No * |
String | TransactionId assegnato all'invio |
msisdn |
No * |
String | Numero al quale è stato inviato il messaggio |
fromDate | No * | String | Data dalla quale gli sms sono stati inviati in formato yyyy-MM-ddTHH:mm:ssZ Il carattere Z indica il timezone nel formato RFC 822 4-digit.(Per l'Italia +0200 durante l'orario estivo e +0100 nel restante periodo dell'anno) |
toDate | No | String | Data fino alla quale gli sms sono stati inviati in formato yyyy-MM-ddTHH:mm:ssZ |
status | No * | String | Stato degli sms |
offset | No | Integer |
Posizione del primo risultato che verrà restituito. Esempio: Se la ricerca trova 100 sms, il campo offset viene valorizzato a 50 ed il campo limit a 10 verranno restituiti gli sms da 51 a 60. Default : 0 |
limit | No | Integer |
Numero di risultati che verranno restituiti. Default : 20 |
* È richiesto che almeno un parametro sia valorizzato
HTTP Status Code
Codice | Descrizione |
---|---|
200 | ok |
400 |
Parametri non validi I possibili
|
401 | Credenziali non valide |
405 | Metodo HTTP non consentito |
500 | Errore generico |
La chiamata ritorna una lista di sms inviati.
Proprietà | Descrizione |
---|---|
smsList |
Lista degli sms ricevuti Ogni sms è descritto dalle proprietà: id - id interno messaggio to - destinatario del messaggio text - testo del messaggio from - mittente del messaggio status - stato del messaggio.Vedi la tabella sottostante. insertDate - data inserimento del messaggio nel formato yyyy-MM-ddTHH:mm:ssZ sentDate - data invio del messaggio nel formato yyyy-MM-ddTHH:mm:ssZ deliveryDate - data consegna del messaggio nel formato yyyy-MM-ddTHH:mm:ssZ transactionId - Identificatore dell'invio price - costo del messaggio |
metadata |
Metadata utili per la paginazioni Per maggiori dettagli sul funzionamento della paginazione visita la pagina dedicata |
I possibili stati di un sms(campo status) sono
Codice | Descrizione |
---|---|
PENDING | Sms in coda per l'invio |
SENT | Sms inviato all'operartore |
NOSENT | Sms non inviato all'operartore |
DELIVERED | Sms consegnato al cellulare del destinatario |
NOTDELIVERED | Sms non consegnato al cellulare |
Esempio:
curl --user AUTH_KEY:AUTH_SECRET https://api.smshosting.it/rest/api/sms/search?fromDate=2011-01-01T00:00:00-0200
HttpResponse sms_search_response = Unirest.get("https://api.smshosting.it/rest/api/sms/search") .basicAuth(SMS_AUTH_KEY, SMS_SECRET_KEY) .queryString("id", "419853396") .asJson();
Unirest\Request::auth(SMS_AUTH_KEY, SMS_SECRET_KEY); $headers = array( 'Accept' => 'application/json' ); $param = array( 'id' => urlencode('419853396') ); $response = Unirest\Request::get('https://api.smshosting.it/rest/api/sms/search', $headers, $param);
response = unirest.get( "https://api.smshosting.it/rest/api/sms/search", headers={ "Accept": "application/json" }, auth=(SMS_AUTH_KEY, SMS_SECRET_KEY), params={ "id": urllib.quote("419853396") } )
String queryString = "?"; queryString = queryString + "&id=" + HttpUtility.UrlEncode(tbSmsSearchId.Text); queryString = queryString + "&transactionId=" + HttpUtility.UrlEncode(tbSmsSearchTransactionId.Text); queryString = queryString + "&msisdn=" + HttpUtility.UrlEncode(tbSmsSearchMsisdn.Text); queryString = queryString + "&fromDate=" + HttpUtility.UrlEncode(tbSmsSearchFromDate.Text); queryString = queryString + "&toDate=" + HttpUtility.UrlEncode(tbSmsSearchToDate.Text); queryString = queryString + "&status=" + HttpUtility.UrlEncode(tbSmsSearchStatus.Text); queryString = queryString + "&offset=" + HttpUtility.UrlEncode(tbSmsSearchOffset.Text); queryString = queryString + "&limit=" + HttpUtility.UrlEncode(tbSmsSearchLimit.Text); HttpResponse jsonResponse = Unirest.get(tbSmsSearchUrl.Text + queryString) .header("accept", cbSmsSearchAccept.Text) .basicAuth(tbAuth_key.Text, tbAuth_secret.Text) .asString();
{ "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 } ] }
Come gestire le chiamate di statusCallback inviate da SMSHosting all'url indicato in fase di invio.
Nel caso non si voglia gestire la statusCallback è possibile in ogni momento interrogare lo stato di uno o più messaggi inviato con la funzione cerca SMS.
Parametro | Tipo | Descrizione |
---|---|---|
id | String |
Id interno del messaggio inviato |
transactionId | String |
L'identificatore personale dell'invio. |
to | String |
Il destinatario del messaggio. |
status | String |
Lo stato del messaggio. Questo parametro può essere valorizzato con DELIVERED (ossia SMS consegnato) o NOTDELIVERED (SMS non consegnalbile). |
notificationDate | String |
Data (in formato yyyy-MM-ddTHH:mm:ssZ) di ricezione della notifica sullo stato. Il carattere Z indica il timezone nel formato RFC 822 4-digit.(Per l'Italia +0200 durante l'orario estivo e +0100 nel restante periodo dell'anno) |
HTTP Status Code
Codice | Descrizione |
---|---|
200 | ok. |
Qualsiasi altro codice |
Viene effettuato un nuovo tentativo di invio dello status per un massimo di 20 volte. |
I possibili stati di un sms(campo status) sono
Codice | Descrizione |
---|---|
PENDING | Sms in coda per l'invio |
SENT | Sms inviato all'operatore |
NOSENT | Sms non inviato all'operartore |
DELIVERED | Sms consegnato al cellulare del destinatario |
NOTDELIVERED | Sms non consegnato al cellulare |
Nell'invio bulk è possbile specificare un URL come parametro notificationCallback.
Verso tale URL smshosting effettuarà delle chiamate per notificare l'esito dell'invio una volta che questo si è concluso.
Le chiamate saranno effettuate in POST con content-type application/json e conterranno un json descritto nella seguente tabella
Parametro | Tipo | Descrizione |
---|---|---|
transactionId | String |
transactionId identificativo dell'invio. Tale parametro viene ritornato anche della riposta immediata dell'invio bulk |
status | String |
Stato dell 'invio I possibili valori sono:
|
Nel caso ci sia un errore nell'invio (status in ERROR
) verrano valorizzati questi campi
Parametro | Tipo | Descrizione |
---|---|---|
errorMsg | String |
Il parameteo viene valorizzato nel caso di status in I possibili BAD_TEXT_PLACEHOLDER - text contiene dei placeholder non sostituibili
|
Esempio di risposta con invio in errore
{ "status":"ERROR", "errorMsg":"NO_CREDIT", "transactionId":"1ccf2c63472387ede0dbbfef9996d2d4" }
Nel caso l'invio vada a buon fine (status in COMPLETED
) verrano valorizzati questi campi
Proprietà | Descrizione |
---|---|
from | Il mittente del messaggio. |
text | Testo Sms |
transactionId |
identificatore dell'invio Se non specificato in fase di richiesta verrà generato un transactionId automaticamente dalle REST API |
smsInserted | Numero Sms inseriti |
smsNotInserted | Numero Sms Non inseriti |
sms |
Lista degli Sms. Ogni sms è descritto dalla proprietà: to - numero di cellulare al quale è stato inviato il messaggio id - id interno del messaggio.Valore utile per richiedere lo stato del messaggio con la funzione di Cerca Sms status - Stato del messaggio. Viene valorizzato ad statusDetail - nel caso il messaggio non venga inserito (status = |
Esempio di risposta con invio completato
{ "status":"COMPLETED", "from":"Mario", "text":"test", "transactionId":"e57ad82669d5bf96ac37d18994374d5b", "smsInserted":0, "smsNotInserted":1, "sms":[ { "to":"39340000000", "status":"INSERTED", "id":421420576 } ] }