VB.NET: invio SMS tramite il servizio SMS Aruba

Aruba offre il servizio SMS Aruba disponibile in due versioni, uno per le attivazioni del servizio effettuate prima del 2016 e l’altro per le attivazioni successive a tale data.

Le attivazioni del servizio effettuate prima del 2016 possono essere gestite con il portale disponibile al seguente http://admin.sms.aruba.it, mentre le attivazione successive al 2016 possono essere gestire con il portale disponibile al seguente https://adminsms.aruba.it.

Entrambi i servizi possono utilizzare le api disponibili tramite l’url http://admin.sms.aruba.it/sms/send.php, ma per le attivazioni successive al 2016 è possibile accedere alle api anche tramite https.

Per un esempio di codice è possibile utilizzare i seguenti link:

Di seguito un esempio di codice che permette di gestire entrambe le versioni, nel codice seguente è possibile inviare un SMS di test specificado:

  • utente e password
  • numero di telefono del destinatario senza anteporre il prefisso internazionale, nel codice viene anteposto a titolo di esempio sempre il +39 (%2b39)
  • alias ovvero il mittente del messaggio in forma alfanumerica (max 11 caratteri alfanumerici), il sender viene visualizzato ai destinatari solo se registrato come Alias nel portale di gestione.

Private urlSendSMSAruba2016 = “https://adminsms.aruba.it/sms/send.php?user={0}&pass={1}&rcpt=%2b39{2}&data={3}&sender={4}&qty=h”
Private urlSendSMSArubaPre2016 = “http://admin.sms.aruba.it/sms/send.php?user={0}&pass={1}&rcpt=%2b39{2}&data={3}&sender={4}&qty=h”

Dim sendSMSRequest As System.Net.WebRequest = Nothing

 

If Me.RadioButtonSMSAruba2016.Checked Then

sendSMSRequest = System.Net.WebRequest.Create(String.Format(Me.urlSendSMSAruba2016,
Me.TextBoxUser.Text, Me.TextBoxPassword.Text,
Me.TextBoxRecipient.Text,
“Prova%20invio%20SMS%20Aruba%202016”,
Me.TextBoxAlias.Text))

ElseIf Me.RadioButtonSMSArubaPre2016.Checked Then

sendSMSRequest = System.Net.WebRequest.Create(String.Format(Me.urlSendSMSArubaPre2016,
Me.TextBoxUser.Text, Me.TextBoxPassword.Text,
Me.TextBoxRecipient.Text,
“Prova%20invio%20SMS%20Aruba%20Pre%202016”,
Me.TextBoxAlias.Text))

End If

 

sendSMSRequest.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials

 

Dim stream As System.IO.Stream = sendSMSRequest.GetResponse.GetResponseStream()

 

Dim reader As New System.IO.StreamReader(stream)

 

Dim line As String = reader.ReadLine()

 

Do While Not String.IsNullOrEmpty(line)

Me.TextBoxOutput.Text &= line
line = reader.ReadLine()

Loop

 

If Me.TextBoxOutput.Text.StartsWith(“KO”) Then

MsgBox (“SMS not send!”, False)
ElseIf Me.TextBoxOutput.Text.StartsWith(“OK”) Then
MsgBox(“SMS send!”)

End If

In ogni caso è anche disponibile l’API SDK del servizio Aruba SMS disponibile per JAVA, PHP, C# e VB.NET che implementa un classe che fa da wrapper alle API, per utilizzare il servizio SMS negli applicativi in modo più strutturato, inoltre è anche possibile ispirarsi all’SDK per ricavare esempi per la gestione delle vari funzionalità offerte dalle API che comprendono l’invio singolo e multiplo dell’SMS e la gestione dei crediti.

[Update 01]

Nel caso si desideri ottenere il credito è possibile utilizzare i seguenti url utilizzando il seguente codice:

Private urlGetCreditAruba2016 = “https://adminsms.aruba.it/sms/credit.php?user={0}&pass={1}”
Private urlGetCreditArubaPre2016 = “http://admin.sms.aruba.it/sms/credit.php?user={0}&pass={1}”

 

Dim getCreditRequest As System.Net.WebRequest = Nothing

If Me.RadioButtonSMSAruba2016.Checked Then
getCreditRequest = System.Net.WebRequest.Create(String.Format(Me.urlGetCreditAruba2016,
Me.TextBoxUser.Text, Me.TextBoxPassword.Text))
ElseIf Me.RadioButtonSMSArubaPre2016.Checked Then
getCreditRequest = System.Net.WebRequest.Create(String.Format(Me.urlGetCreditArubaPre2016,
Me.TextBoxUser.Text, Me.TextBoxPassword.Text))
End If

 

getCreditRequest.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials

 

Dim stream As System.IO.Stream = getCreditRequest.GetResponse.GetResponseStream()

Dim reader As New System.IO.StreamReader(stream)
Dim line As String = reader.ReadLine()

 

Do While Not String.IsNullOrEmpty(line)
Me.TextBoxOutput.Text &= line
line = reader.ReadLine()
Loop

 

If Me.TextBoxOutput.Text.StartsWith(“KO”) Then
Util.ShowError(“Get credit failed!”, False)
ElseIf Me.TextBoxOutput.Text.StartsWith(“OK”) Then
Util.ShowMessage(“Get credit success!”)
End If

5 commenti su “VB.NET: invio SMS tramite il servizio SMS Aruba”

  1. Buongiorno
    ho utilizzato il codice pubblicato in vb.net per l’invio degli sms dalla mia applicazione… ma funziona saltuariamente .. per esempio con la seguente stringa :
    https://adminsms.aruba.it/sms/send.php?user=Sms11111&pass=SMS&rcpt=%2b393383911582&data=XXXXXX XX XXXXXXX : Ricevuta prenotazione app.to 21 09 2020 ore 09 00 ufficio Ufficio Archivio. ATTENDERE conferma &sender=XXX.XXXXXXX&qty=h

    LA RESPONSE CONTIENE : KO Impossibile accodare il/i messaggio/i

    Qualche suggerimento per risolvere il problema ? La lunghezza del testo da inviare è 115 caratteri , la lunghezza dell’intera stringa compreso URL è di 239 caratteri.

    Grazie

    Rispondi
    • Buongiorno Gabriella,
      secondo me ti conviene aprire una chiamata ad Aruba per capire con loro il motivo del mancat accodamento.
      Il fatto che ti viene restituito un erro significa che comunque il codice per inviare al loro server il messaggio è corretto, io potrei ipotizzare un qualche problema col messaggio stesso per esempio caratteri non validi o troppi messaggi contemporanei

      Rispondi
  2. Buongiorno, ho trovato questo articolo, per l’invio di SMS con Aruba.
    Qualcuno ha esperienza / esempi di codice con Delphi, sono alle prime armi con questa tipologia di funzioni ?
    Ho capito che serve il componente TRestCLient, ma non come funziona.
    Grazie per l’aiuto.

    Rispondi

Lascia un commento

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.