Como adicionar a funcionalidade de mensagens de texto SMS ao meu site?

57

Quero adicionar a capacidade de enviar lembretes às pessoas por email e SMS para eventos específicos nos quais eles se inscreveram em um aplicativo Web que estou criando. A parte do email não é difícil, mas estou me perguntando onde encontrar uma boa solução para o envio de mensagens SMS.

Também seria uma vantagem se essa solução permitisse a comunicação bidirecional por SMS com meu aplicativo Web, para que as pessoas pudessem responder com um tipo de mensagem CONFIRMAR ou CANCELAR.

Alguém implementou algo assim? Alguém sabe de boas ferramentas por aí?

EDIT: Estou percebendo que essa é mais uma questão do tipo "muitas maneiras de esfolar esse gato" e, portanto, mudei para wiki da comunidade.

jessegavin
fonte
+1, conheço uma dúzia de fornecedores de API SMS unidirecionais, mas nenhum que publique novamente se uma resposta for recebida.
Tim Post
Eu adicionei uma recompensa a esta pergunta, na esperança de melhorar as respostas sobre esta questão.
artlung 21/07
jessegavin, Se você deseja selecionar a melhor resposta, sinta-se à vontade - a recompensa termina amanhã!
Artlung

Respostas:

25

Eu tive que editar essa resposta algumas vezes, pois os serviços que eu recomendei inicialmente foram encerrados. Acredito que o novo líder do setor seja o Twilio , eles têm uma excelente API e preços razoáveis. Algumas alternativas vale a pena considerar são Tropo , Plivo e Nexmo .

Eu uso o IMified há algum tempo para fazer coisas semelhantes a essa e achei que funcionava bem. Ele permite que você receba SMS (ou Twitter e mensagens IM) como HTTP POSTs e a resposta do seu servidor da Web é enviada como resposta. Eles também oferecem um serviço da web que pode ser usado para iniciar uma conversa e enviar mensagens .

Enquanto procurava outras opções, deparei-me com o Zeep Mobile (Observação: o Zeep Mobile não estará mais em funcionamento a partir de 1/8/2013), que possui uma API para enviar e receber SMS. É gratuito e suportado por anúncios ou disponível por uma taxa mensal. Eu não tentei, mas parece bastante interessante.

Você também pode usar um gateway SMS como o ClickATell .

Boa sorte!

Edição: Encontrei uma pergunta no StackOverflow que tem muito mais sugestões, algumas podem estar desatualizadas.

Adam
fonte
Também estou usando o CLickATell e estou satisfeito com o serviço deles.
2727
Eu vou gritar pelo serviço pago Plivo, é muito bom. Costumávamos usar o Twilio, que também é excelente, mas custa mais.
Frank
15

Eu tinha um amigo que conseguiu implementar isso por e-mail. Acredito que ele fez exatamente da mesma maneira que este site recomenda :

T-Mobile: phonenumber @ tmomail.net
Virgin Mobile: phonenumber @ vmobl.com
Cingular: phonenumber @ cingularme.com
AT&T: [email protected]
Sprint: phonenumber @ messaging.sprintpcs.com
Verizon: phonenumber @ vtext.com
Nextel : phonenumber @ messaging.nextel.com

em que phonenumber = seu número de telefone de 10 dígitos

Mike
fonte
11
Acabei de testar isso e minha operadora (AT&T) adicionou o FROM: [Nome do remetente], SUBJ: [Linha de assunto], MSG: [Conteúdo da mensagem] no início da mensagem de texto. - Ou seja (no mínimo) 21 caracteres que são usados ​​com esse método. Estou pensando que (pelo menos para mim) isso não seria aceitável para a maioria dos aplicativos da Web voltados para o público.
Jessegavin
3
@artlung pt.wikipedia.org/wiki/List_of_carriers_providing_SMS_transitis uma lista bastante abrangente.
Yahel
7
Você quer dizer en.wikipedia.org/wiki/List_of_SMS_gateways , mas obrigado!
Artlung
2
No meu país (Argentina) você tem que pagar os SMS recebidos por e-mail (Seus clientes podem não gostar)
Eduardo Molteni
11
Como você determina quem é a transportadora?
Adam
9

Eu tenho usado o Twilio para voz e fiquei bastante impressionado. Tenho certeza que o sistema SMS deles não é muito diferente. Isso permitirá que você envie para qualquer operadora sem saber o endereço de e-mail a ser enviado (como notei que elas mudam com o tempo).

Darryl Hein
fonte
Então você está usando a API deles? Como você está usando isso?
Artlung
11
Estou usando a API de voz deles para fazer chamadas acionadas por scripts PHP. Estou usando-o para fazer chamadas e usá-lo para fazer voz em texto e depois aceitar respostas do usuário.
Darryl Hein
5

Isso é apenas para envio, mas usei o Penny SMS para um projeto e tive boa sorte com ele. Se você estiver usando Ruby, confira a gema penny_sms_muncher .

Matthew Shanley
fonte
4

Outras duas opções que eu considerei no passado:

API do Skype
Envie e receba SMS usando a nova API do Skype. Acho que o Twilio é mais barato, mas o Skype está disponível em mais países (se você deseja receber SMSs)

Conecte um telefone ao servidor
Se você mora em um país (como a Argentina), onde as empresas de gateway de SMS cobram muito, é mais barato comprar um telefone e conectá-lo ao servidor (dependendo do ambiente de hospedagem, é claro). Em seguida, você pode usar um software como o SMSToolkit para interagir com o telefone.

Eduardo Molteni
fonte
3

Eu recomendaria olhar para a API bidirecional fornecida por http://www.world-text.com/ .

AronHopkins
fonte
2

Eu escrevi um sistema SMS de duas maneiras usando o Vidicom UK como provedor de SMS (não tenho certeza se eles ainda estão funcionando). Basicamente, eles têm uma API baseada em HTTP onde você pode enviar e receber mensagens SMS. É muito complexo para explicar em detalhes, mas, em essência, eu tinha duas tabelas de banco de dados, uma para mensagens recebidas do gateway e outra para mensagens de saída enfileiradas e depois enviadas para o gateway.

Basicamente, tive que analisar as mensagens recebidas para ver se elas continham palavras-chave como CANCEL ou STOP e, em seguida, processar a mensagem de acordo. Infelizmente, você recebe muitas mensagens de lixo - você ficaria surpreso com o número de pessoas que enviam mensagens SMS para o número errado -, então você deve responder dizendo "Mensagem não entendida" etc.

Dan Diplo
fonte
2

Se você deseja um provedor de SMS em massa acessível, com uma API de desenvolvedor, você pode usar o www.SourceSMS.com - eles oferecem cobertura internacional e possuem scripts que você pode simplesmente baixar e integrar ao seu site.

Liam Harris
fonte
1

Outra opção é usar a função de email do PHP e uma lista de servidores de email da operadora, como:

Faça um formulário HTML em um arquivo 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>

Em seguida, defina para onde o email será enviado:

if ($carrier == "1") {
    $email = "[email protected]";
} elseif ($carrier == "2") {
    $email = "[email protected]";
} elseif ($carrier == "3") {
    $email = "[email protected]";
} elseif ($carrier == "4") {
    $email = "[email protected]";
} elseif ($carrier == "5") {
    $email = "[email protected]";
} elseif ($carrier == "6") {
    $email = "[email protected]";
} elseif ($carrier == "7") {
    $email = "[email protected]";
} elseif ($carrier == "8") {
    $email = "[email protected]";
} elseif ($carrier == "9") {
    $email = "[email protected]";
}

Envie o e-mail: ($ email, $ subject, $ msg, $ mailfrom precisarão ser definidos e no formato adequado, recomende também a limpeza das entradas)

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.";
}

Verifique se o PHP possui configurações de email válidas no php.ini. Se você tiver alguma dúvida, basta perguntar.

ionFish
fonte
0

Existem muitos produtores e prestadores de serviços. Eu conheço o Ozeki SMS Gateway. Os seguintes URLs podem ajudá-lo se você desejar uma solução interna com modem GSM ou SMPP / UCP / CMD ou outro provedor. Quando você toma uma decisão, a primeira pergunta: quantos SMS você deseja enviar ou receber?

API SMS HTTP com exemplos .

API do SMS para desenvolvedores de ASP / ASP.NET e exemplos para desenvolvedores de PHP sobre como configurar páginas de funcionalidade do SMS podem fornecer informações úteis.

Lilio Luami
fonte