Come aggiungere la funzionalità di messaggistica SMS al mio sito Web?


57

Voglio aggiungere la possibilità di inviare promemoria alle persone via e-mail e SMS per eventi specifici per i quali si sono registrati su un'applicazione Web che sto creando. La parte email non è difficile, ma mi chiedo dove trovare una buona soluzione per l'invio di messaggi SMS.

Sarebbe anche un vantaggio se questa soluzione consentisse la comunicazione SMS bidirezionale con la mia applicazione Web in modo che le persone fossero in grado di rispondere con un tipo CONFERMA o ANNULLA di un messaggio.

Qualcuno ha implementato qualcosa del genere? Qualcuno sa di buoni strumenti là fuori?

EDIT: Sto realizzando che questo è più di un tipo di domanda "molti modi per scuoiare questo gatto" e quindi l'ho cambiato in wiki della comunità.


+1, conosco una dozzina di provider API SMS a senso unico, ma nessuno che rispedisce se viene ricevuta una risposta.
Tim Post

Ho aggiunto una generosità a questa domanda nella speranza di migliorare le risposte a questa domanda.
artlung,

jessegavin, Se hai voglia di selezionare una risposta migliore, sentiti libero di farlo: la grazia finisce domani!
artlung,

Risposte:


25

Ho dovuto modificare questa risposta alcune volte poiché i servizi inizialmente raccomandati sono andati fuori servizio. Credo che il nuovo leader del settore sia Twilio , hanno un'API eccellente e prezzi ragionevoli. Alcune alternative da considerare sono Tropo , Plivo e Nexmo .

Ho usato IMified per un po 'di tempo per fare cose simili a quelle e ho scoperto che funziona bene. Ti consente di ricevere SMS (o messaggi Twitter e IM) come POST HTTP e la risposta del tuo server web viene inviata come risposta. Offrono anche un servizio Web che può essere utilizzato per avviare la conversazione e inviare messaggi .

Mentre cercavo altre opzioni, mi sono imbattuto in Zeep Mobile (Nota: Zeep Mobile non sarà più in attività a partire dall'1 / 1/2013) che ha un'API per l'invio e la ricezione di SMS. È gratuito e supportato da pubblicità o disponibile a pagamento mensile. Non l'ho provato, ma sembra abbastanza interessante.

Puoi anche utilizzare un gateway SMS come ClickATell .

Buona fortuna!

EDIT: ho trovato una domanda su StackOverflow che ha molti più suggerimenti, alcuni potrebbero non essere aggiornati.


Sto usando anche CLickATell e sono soddisfatto del loro servizio.
Alex,

Ho intenzione di chiedere il servizio a pagamento Plivo, è molto buono. Usavamo Twilio che è anche eccezionale, ma costa di più.
Frank,

15

Avevo un amico che è riuscito a implementarlo via e-mail. Credo che abbia fatto esattamente allo stesso modo in cui questo sito consiglia :

T-Mobile: phonenumber @ tmomail.net
Virgin Mobile: phonenumber @ vmobl.com
Cingular: phonenumber @ cingularme.com
AT & T: phonenumber@txt.att.net
Sprint: phonenumber @ messaging.sprintpcs.com
Verizon: phonenumber @ vtext.com
Nextel : phonenumber @ messaging.nextel.com

dove phonenumber = il tuo numero di telefono a 10 cifre


1
Ho appena provato questo e il mio operatore (AT&T) ha aggiunto FROM: [Nome mittente], SUBJ: [Riga oggetto], MSG: [Contenuto del messaggio] all'inizio del messaggio di testo. - Quindi sono (almeno) 21 caratteri che si abituano a questo metodo. Sto pensando che (almeno per me) questo non sarebbe accettabile per la maggior parte delle applicazioni web rivolte al pubblico.
jessegavin,



2
Nel mio paese (Argentina) devi pagare l'SMS ricevuto via e-mail (ai tuoi clienti potrebbe non piacere)
Eduardo Molteni,

1
Come si determina chi è il corriere?
Adam,

9

Ho usato Twilio per la voce e sono rimasto piuttosto colpito. Sono sicuro che il loro sistema SMS non è molto diverso. Ciò ti consentirà di inviare a qualsiasi corriere senza conoscere l'indirizzo e-mail a cui inviare (come ho notato che cambiano nel tempo).


Quindi stai usando la loro API? Come lo stai usando?
artlung,

1
Sto usando la loro API vocale per effettuare chiamate attivate tramite script PHP. Lo sto usando per effettuare chiamate e lo sto usando per fare voice to text e quindi accettare risposte da parte dell'utente.
Darryl Hein,


4

Altre due opzioni che ho considerato in passato:

API Skype
Invia e ricevi SMS utilizzando la nuova API Skype. Immagino che Twilio sia più economico, ma Skype è disponibile in più paesi (se si desidera ricevere SMS)

Collega un telefono al tuo server
Se vivi in ​​un paese (come l'Argentina) dove le compagnie di gateway SMS fanno pagare molto, potresti trovare più economico acquistare un telefono e collegarlo al tuo server (ovviamente, a seconda del tuo ambiente di hosting). Quindi è possibile utilizzare un software come SMSToolkit per interagire con il telefono.



2

Ho scritto un sistema SMS di questo tipo in due modi usando Vidicom UK come provider SMS (non sono sicuro che funzionino ancora). Fondamentalmente hanno un'API basata su HTTP in cui è possibile inviare e ricevere messaggi SMS. È troppo complesso da spiegare in dettaglio, ma in sostanza avevo due tabelle di database, una per i messaggi in arrivo ricevuti dal gateway e un'altra per i messaggi in uscita che sono in coda e quindi inviati al gateway.

Fondamentalmente ho dovuto quindi analizzare i messaggi in arrivo per vedere se contenevano parole chiave come CANCEL o STOP e quindi elaborare il messaggio di conseguenza. Sfortunatamente, ricevi molti messaggi spazzatura - rimarrai sorpreso da quante persone inviano messaggi SMS al numero sbagliato - quindi devi rispondere dicendo "Messaggio non compreso" ecc.


2

Se desideri un fornitore di SMS all'ingrosso a prezzi accessibili, con un'API per sviluppatori puoi utilizzare www.SourceSMS.com: offrono copertura internazionale e dispongono di script che puoi semplicemente scaricare e integrare nel tuo sito web.


1

Un'altra opzione è quella di utilizzare la funzione di posta di PHP e un elenco di server di posta elettronica del corriere, in questo modo:

Crea un modulo HTML su un file PHP,

<select name="carrier" style="width: 130px" >
<option selected="" value="1">Verizon Wireless</option>
<option value="2">Alltel</option>
<option value="3">Boost Mobile</option>
<option value="4">Cingular</option>
<option value="5">Nextel</option>
<option value="6">Sprint</option>
<option value="7">T-Mobile</option>
<option value="8">Virgin Mobile</option>
<option value="9">AT&T</option>
</select>

Quindi impostare dove verrà inviata la posta:

if ($carrier == "1") {
    $email = "$to@vtext.com";
} elseif ($carrier == "2") {
    $email = "$to@message.alltel.com";
} elseif ($carrier == "3") {
    $email = "$to@myboostmobile.com";
} elseif ($carrier == "4") {
    $email = "$to@cingularme.com";
} elseif ($carrier == "5") {
    $email = "$to@messaging.nextel.com";
} elseif ($carrier == "6") {
    $email = "$to@messaging.sprintpcs.com";
} elseif ($carrier == "7") {
    $email = "$to@tmomail.net";
} elseif ($carrier == "8") {
    $email = "$to@vmobl.com";
} elseif ($carrier == "9") {
    $email = "$to@txt.att.net";
}

Invia la mail: ($ email, $ subject, $ msg, $ mailfrom dovranno essere definiti e nel formato corretto, consigliamo anche di disinfettare gli input)

if (mail($email, $subject, $msg, $mailfrom)) {
    echo "<h4>Your Text Was Successfully Sent.</h4>";
    echo "<br />";
    if ($backurl == "") {
        echo "<a href='javascript:history.back(1);'>Back</a>";
    } else {
        echo "<a href='" . $backurl . "'>Back</a>";
    }
    echo "</body></html>";
} else {
    echo "<h4><b>Error Sending Message</b></h4><br>Can't send txt to $to. <br> Contact the site Administrator.";
}

Assicurati che PHP abbia impostazioni di posta valide in php.ini. In caso di domande, basta chiedere.



0

Ci sono molti produttori e fornitori di servizi. Conosco Ozeki SMS Gateway. I seguenti URL possono aiutarti se desideri una soluzione interna con il proprio modem gsm o SMPP / UCP / CMD o altro provider. Quando prendi una decisione, la prima domanda: quanti SMS vuoi inviare o ricevere?

API SMS HTTP con esempi .

API SMS per sviluppatori ASP / ASP.NET ed esempi per sviluppatori PHP su come impostare le pagine di funzionalità SMS possono fornire utili informazioni.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.