desenv-web-rp.com

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

Quero adicionar a capacidade de enviar lembretes para as pessoas por e-mail 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 enviar SMS mensagens.

Também seria uma vantagem se essa solução permitisse uma comunicação bidirecional 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.

57
jessegavin

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 Twilio, eles têm uma API excelente e preços razoáveis. Algumas alternativas que vale a pena considerar são Tropo , Plivo e Nexmo .

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

Enquanto procurava por outras opções, me deparei Zeep Mobile (Observação: o Zeep Mobile não estará mais nos negócios a partir de 01/08/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 SMS Gateway como ClickATell.

Boa sorte!

EDIT: Encontrei uma pergunta no StackOverflow que tem muito mais sugestões, algumas podem estar desatualizadas.

25
Adam

Eu tinha um amigo que conseguiu implementar isso por e-mail. Acredito que ele fez exatamente da mesma maneira 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

onde número de telefone = seu número de telefone de 10 dígitos

15
Mike

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

9
Darryl Hein

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

5
Matthew Shanley

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

API do Skype
Envie e receba SMS usando a nova API do Skype. Eu 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 seu servidor
Se você mora em um país (como a Argentina) onde SMS empresas de gateway cobram muito, pode ser mais barato comprar um telefone e conectá-lo ao servidor (dependendo do ambiente de hospedagem) , claro). Em seguida, você pode usar um software como SMSToolkit para interagir com o telefone.

4
Eduardo Molteni

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

3
AronHopkins

Se você deseja um provedor acessível a granel SMS, 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.

2
Liam Harris

Eu escrevi o sistema SMS de duas maneiras usando o Vidicom UK como o provedor 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 enviadas ao 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 SMS mensagens para o número errado - então é necessário responder dizendo "Mensagem não entendida" etc.

2
Dan Diplo

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 PHP possui configurações de email válidas no php.ini. Se você tiver alguma dúvida, basta perguntar.

1
ionFish

Existem muitos produtores e prestadores de serviços. Eu conheç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?

HTTP SMS API com exemplos .

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

0
Lilio Luami

Não tenho certeza se você seria capaz de fazer alguma coisa com as respostas. Algumas APIs foram criadas para implementar a funcionalidade de texto com o Google Voice.

http://code.google.com/p/pygooglevoice/

http://code.google.com/p/google-voice-Java/

0
Nick Painter