Shellrent - Guide e Documentazione | Servizio SMS: invio con API
2702
post-template-default,single,single-post,postid-2702,single-format-standard,ajax_fade,page_not_loaded,,footer_responsive_adv,qode-content-sidebar-responsive,qode-child-theme-ver-1.0.0,qode-theme-ver-16.1,qode-theme-bridge,wpb-js-composer js-comp-ver-5.4.7,vc_responsive
Trova
Exact matches only
Search in title
Search in content
Search in excerpt
Search in comments
Filter by Custom Post Type

Servizio SMS: invio con API

Per utilizzare le API di invio SMS è necessario recuperare le proprie chiavi personali di accesso alle API presenti nella pagina del proprio profilo utente, cliccando su “Menu” in alto a destra e cliccando sul bottone apposito. L’utilizzo delle due chiavi lì visualizzate verrà chiarito di seguito.

Funzionamento

Le API si basano su una comunicazione http utilizzando i metodi GET e POST. Le risposte sono in formato JSON e contengono sempre i seguenti parametri:

  • error
    • Codice d’errore, 0 significa “tutto ok”
  • message
    • Messaggio d’errore
    • Può essere vuoto
  • data
    • Contiene dati strutturati in base alla risposta
    • Può essere vuoto

Login

Per effettuare ogni singola chiamata API è necessario seguire la procedura di login e infine lanciare la relativa chiamata API.

Il login si basa su 3 step, di seguito descritti:

  • Chiamata 1: POST https://manager.shellrent.com/api/login/request
    • Parametri richiesti:
      • REQUEST_KEY = è la “chiave d’accesso”
    • Questo comando risponde con un parametro “CHALLENGE” contenente una stringa di testo generata casualmente
  • Chiamata 2: POST https://manager.shellrent.com/api/login/verify
    • Parametri richiesti:
      • REQUEST_KEY = è la “chiave d’accesso”
      • CHALLENGE = (diverso di volta in volta)
    • Il parametro CHALLENGE inviato in questa richiesta corrisponde al seguente calcolo: SHA256( AB ) cioè “A” concatenato con “B”, dove A è la CHALLENGE restituita dalla precedente chiamata e B è il la “chiave segreta”
    • Se CHALLENGE è corretta, allora il login è considerato valido e viene restituito un parametro TOKEN che può essere utilizzato una sola volta, per effettuare la chiamata vera e propria (step successivo)
  • Chiamata 3: (chiamata vera e propria da fare)
    • Parametri richiesti:
      • ACCESS_TOKEN = (diverso di volta in volta)
    • È l’ACCESS_TOKEN ricevuto in risposta alla precedente chiamata

Esempio

Per avere un esempio funzionante, è possibile scaricare il seguente file che contiene uno script PHP. L’esempio è funzionante, ma nello script devono essere inserite le proprie chiavi API “Richiesta” e “Segreto”, che per ovvi motivi di sicurezza nello script sono fasulle.

Lo script esegue la seguente chiamata API:

  • GET /index/hello
    • Può essere invocata anche come GET /index/hello/valore dove “valore” può essere un qualsiasi valore arbitrario (stringa)
    • Restituisce tra i dati due parametri:
      • data1: contiene sempre il valore “Test”
      • param: restituisce ciò che viene passato come “valore” in “/index/hello/valore“, altrimenti se la chiamata è effettuata come “/index/hello“, non viene restituito questo parametro
    • Questa chiamata può essere utile per testare il corretto funzionamento della vostra implementazione

Scarica qui lo script di prova: prova

Dettagli chiamate per invio SMS

Dettagli account

GET /sms/account_details

Questa chiamata permette di ottenere le informazioni sul proprio account.

La struttura dati di risposta è composta da i seguenti campi:

  • economy: indica il credito residuo di sms economy
  • standard: indica il credito residuo di sms standard
  • receptionTag: [opzionale] se attivo il serivizio di ricezione sms mostra il tag completo da aggiungere all’sms per riceverlo sul proprio account
  • receptionNumber: [opzionale] se attivo il serivizio di ricezione sms mostra il numero completo al quale inviare l’sms per riceverlo sul proprio account

Invio sms economy

POST /sms/send_economy_sms

Questa chiamata permette di inserire nella coda di invio degli sms di tipo economy.

I parametri sono i seguenti:

  • numbers: una collezione di numeri ai quali inviare gli sms, devono essere delle stringhe composte da sole cifre numeriche (numeri separati da virgola es. “345123456,335123456”)
  • message: il messaggio da inviare ad ogni numero, deve essere una stringa di massimo 160 caratteri
  • dateToSend: [opzionale] la data e l’ora dopo la quale inviare gli sms nel formato dd/mm/yyyy HH:ii:ss

La struttura dati di risposta, in caso di successo, è composta da i seguenti campi:

  • smsIds: la lista degli id degli sms creati, in coda per essere inviati

Invio sms standard

POST /sms/send_standard_sms

Questa chiamata permette di inserire nella coda di invio degli sms di tipo standard.

I parametri sono i seguenti:

  • numbers: una collezione di numeri ai quali inviare gli sms, devono essere delle stringhe composte da sole cifre numeriche (numeri separati da virgola es. “345123456,335123456”)
  • message: il messaggio da inviare ad ogni numero, deve essere una stringa di massimo 160 caratteri
  • sender: [opzionale] il mittente degli sms, deve essere una stringa di massimo 11 caratteri
  • dateToSend: [opzionale] la data e l’ora dopo la quale inviare gli sms nel formato dd/mm/yyyy HH:ii:ss

La struttura dati di risposta, in caso di successo, è composta da i seguenti campi:

  • smsIds: la lista degli id degli sms creati, in coda per essere inviati

Dettaglio sms inviato

GET /sms/sms_details/{smsId}

Questa chiamata permette di ottenere i dettagli del singolo sms inviato.

La struttura dati di risposta è composta da i seguenti campi:

  • smsId: l’id dell’esms
  • number: il numero a cui sarà o è stato inviato l’sms
  • message: il messaggio dell’sms
  • quality: il tipo di sms (economy, premium)
  • date_sent: la data di invio, null se non è ancora stato inviato
  • sending_error: indica se c’è stato un errore durante l’invio
  • date_delivered: [opzionale, solo per gli sms standard] indica quando è stato consegnato l’sms al destinatario, null se non è ancora stato consegnato
Ti è piaciuto l'articolo? Condividilo! oppure stampa
Nessun commento

Scrivi un commento