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:
- Automatizzare invio SMS tramite Api – SMS Aruba Versione precedente al 2016
- Automatizzare invio SMS tramite Api (per la versione successiva al 2016)
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
è possibile avere questo script in php
Mi spiace, ma non utilizzo PHP puoi provare a cercare se esiste qualche convertitore di codice online da VB.NET a PHP….
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
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
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.