web-dev-qa-db-fra.com

Comment ajouter la fonctionnalité de messagerie texte SMS à mon site Web?

Je souhaite ajouter la possibilité d'envoyer des rappels aux personnes par e-mail et par SMS pour des événements spécifiques auxquels ils se sont inscrits sur une application Web que je suis en train de créer. La partie email n’est pas difficile, mais je me demande où trouver une bonne solution pour envoyer des messages SMS.

Ce serait également un avantage si cette solution autorisait la communication bidirectionnelle SMS avec mon application Web, de sorte que les personnes puissent répondre avec un type de message CONFIRM ou CANCEL.

Quelqu'un at-il mis en œuvre quelque chose comme ça? Est-ce que quelqu'un connaît de bons outils sur le marché?

EDIT: Je me rends compte qu'il s'agit plus d'une question du type "beaucoup de façons de traiter ce chat" et je l'ai donc changée en wiki de communauté.

57
jessegavin

J'ai dû modifier cette réponse à quelques reprises car les services que j'avais initialement recommandés ont cessé leurs activités. Je crois que le nouveau leader de l'industrie est Twilio, ils ont une excellente API et des prix raisonnables. Certaines alternatives à considérer sont Tropo , Plivo , et Nexmo .

J'utilise IMified depuis un moment pour faire des choses semblables à celles-ci et je les ai trouvées très bien . Il vous permet de recevoir SMS (ou des messages Twitter et de messagerie instantanée) sous forme de HTTP POST et la réponse de votre serveur Web est envoyée en tant que réponse. Ils offrent également un service Web qui peut être utilisé pour engager une conversation et envoyer des messages .

Alors que je cherchais d'autres options, je suis tombé sur Zeep Mobile (Remarque: Zeep Mobile ne sera plus en activité à compter du 01/08/2013) qui a une API pour envoyer et recevoir des SMS. Il est gratuit et financé par la publicité ou disponible moyennant des frais mensuels. Je n'ai pas essayé, mais ça a l'air assez intéressant.

Vous pouvez également utiliser une passerelle SMS telle que ClickATell.

Bonne chance!

EDIT: J'ai trouvé une question sur StackOverflow qui contient beaucoup plus de suggestions, certaines peuvent être périmées.

25
Adam

J'ai eu un ami qui a réussi à mettre en œuvre cela par courrier électronique. Je crois qu'il l'a fait exactement de la même manière ce site recommande :

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

numéro de téléphone = votre numéro de téléphone à 10 chiffres

15
Mike

J'utilise Twilio pour voix et j'ai été très impressionné. Je suis sûr que leur système SMS n'est pas très différent. Cela vous permettra d’envoyer à n’importe quel opérateur sans connaître l’adresse électronique à laquelle envoyer (comme je l’ai remarqué, elles changent avec le temps).

9
Darryl Hein

C'est pour l'envoi uniquement, mais j'ai utilisé Penny SMS pour un projet et j'ai eu de la chance avec. Si vous utilisez Ruby, vérifiez le penny_sms_muncher gem .

5
Matthew Shanley

Deux autres options que j'ai envisagées dans le passé:

API Skype
Envoyez et recevez SMS à l'aide de la nouvelle API Skype. Je suppose que Twilio est moins cher, mais Skype est disponible dans plusieurs pays (si vous souhaitez recevoir des SMS)

Branchez un téléphone sur votre serveur
Si vous habitez dans un pays (comme l’Argentine) où SMS entreprises de passerelles font payer beaucoup, vous trouverez peut-être moins cher d’acheter un téléphone et de le brancher sur votre serveur (en fonction de l’environnement de votre hébergement , bien sûr). Ensuite, vous pouvez utiliser un logiciel tel que SMSToolkit pour interagir avec le téléphone.

4
Eduardo Molteni

Je recommanderais de regarder dans les deux API fournies par http://www.world-text.com/ .

3
AronHopkins

Si vous souhaitez un fournisseur en masse SMS abordable, avec une API de développeur, vous pouvez utiliser www.SourceSMS.com - ils offrent une couverture internationale et des scripts que vous pouvez simplement télécharger et intégrer à votre site Web.

2
Liam Harris

J'ai écrit un tel système SMS de deux manières en utilisant Vidicom UK en tant que fournisseur SMS (je ne suis pas sûr s'ils y vont encore). En gros, ils ont une API basée sur HTTP où vous pouvez envoyer et recevoir des messages SMS. C'est trop compliqué à expliquer en détail, mais j'avais essentiellement deux tables de base de données, une pour les messages entrants reçus de la passerelle et une autre pour les messages sortants mis en file d'attente puis envoyés à la passerelle.

En gros, je devais ensuite analyser les messages entrants pour voir s’ils contenaient des mots clés tels que CANCEL ou STOP, puis traiter le message en conséquence. Malheureusement, vous recevez beaucoup de messages erronés - vous seriez surpris du nombre de personnes qui envoient SMS messages au mauvais numéro - vous devez donc répondre en disant "Message non compris", etc.

2
Dan Diplo

Une autre option consiste à utiliser la fonction mail de PHP et une liste des serveurs de messagerie de l'opérateur, comme suit:

Créez un formulaire HTML sur un fichier 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>

Puis définissez où le courrier sera envoyé:

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

Envoyer le courrier: ($ email, $ sujet, $ msg, $ maildefra besoin d'être défini et dans un format approprié, recommande également de nettoyer les entrées)

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

Assurez-vous que PHP possède des paramètres de messagerie valides dans php.ini. Si vous avez des questions, vous avez juste à me les poser.

1
ionFish

Il existe de nombreux producteurs et fournisseurs de services. Je connais Ozeki SMS Gateway. Les URL suivantes peuvent vous aider si vous souhaitez une solution interne avec votre propre modem GSM, votre fournisseur SMPP/UCP/CMD ou autre. Lorsque vous prenez une décision, la première question: combien de SMS voulez-vous envoyer ou recevoir?

HTTP SMS API avec exemples .

API SMS pour développeurs ASP/ASP.NET et exemples pour PHP Les développeurs qui expliquent comment configurer SMS pages de fonctionnalités peuvent vous fournir des informations utiles.

0
Lilio Luami

Je ne suis pas sûr que vous puissiez faire quoi que ce soit avec les réponses. Certaines API ont été conçues pour implémenter la fonctionnalité de texte avec Google Voice.

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

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

0
Nick Painter