Jak dodać funkcję SMS-ów do mojej witryny?


57

Chcę dodać możliwość wysyłania przypomnień przez e-mail i SMS o określonych wydarzeniach, na które zapisali się w aplikacji internetowej, którą tworzę. Część e-mail nie jest trudna, ale zastanawiam się, gdzie znaleźć dobre rozwiązanie do wysyłania wiadomości SMS.

Byłoby również plusem, gdyby to rozwiązanie pozwalało na dwukierunkową komunikację SMS z moją aplikacją internetową, aby ludzie mogli odpowiedzieć za pomocą wiadomości typu POTWIERDŹ lub ANULUJ.

Czy ktoś zaimplementował coś takiego? Czy ktoś wie o dobrych narzędziach?

EDYCJA: Zdaję sobie sprawę, że jest to raczej „wiele sposobów na skórowanie tego kota”, dlatego zmieniłem je na wiki społeczności.


+1, znam tuzin dostawców SMS API w jedną stronę, ale żaden z nich nie odpisuje, jeśli otrzyma odpowiedź.
— Tim Post

Dodałem nagrodę za to pytanie w nadziei na poprawę odpowiedzi na to pytanie.
— artlung

jessegavin, Jeśli masz ochotę wybrać najlepszą odpowiedź, nie krępuj się - nagroda kończy się jutro!
— artlung

Odpowiedzi:


25

Musiałem edytować tę odpowiedź kilka razy, ponieważ usługi, które początkowo poleciłem, przestały działać. Uważam, że nowym liderem branży jest Twilio , mają doskonałe API i rozsądne ceny. Niektóre alternatywy warte rozważenia to Tropo , Plivo i Nexmo .

Od jakiegoś czasu używam IMified do robienia podobnych rzeczy i przekonałem się, że działa dobrze. Pozwala odbierać SMS-y (lub wiadomości Twitter i IM) jako POST HTTP, a odpowiedź twojego serwera jest wysyłana jako odpowiedź. Oferują również usługę internetową, za pomocą której można inicjować rozmowę i wysyłać wiadomości .

Gdy szukałem innych opcji, natknąłem się na Zeep Mobile (uwaga: Zeep Mobile nie będzie już działać od 8.01.2013), który ma interfejs API do wysyłania i odbierania wiadomości SMS. Jest albo bezpłatny, a reklamy obsługiwane lub dostępne za opłatą miesięczną. Nie próbowałem tego, ale wygląda całkiem interesująco.

Możesz także użyć bramki SMS, takiej jak ClickATell .

Powodzenia!

EDYCJA: Znalazłem pytanie na StackOverflow, które ma wiele innych sugestii, niektóre mogą być nieaktualne.


Korzystam również z CLickATell i jestem zadowolony z ich usług.
— Alex

Zamierzam wpaść na płatną usługę Plivo, jest bardzo dobra. Używaliśmy Twilio, który jest również wyjątkowy, ale kosztuje więcej.
— Frank

15

Miałem przyjaciela, któremu udało się to za pośrednictwem poczty e-mail. Wydaje mi się, że zrobił to dokładnie tak samo, jak ta witryna zaleca :

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

gdzie phonenumber = Twój 10-cyfrowy numer telefonu


1
Właśnie to przetestowałem i mój operator (AT&T) dodał na początku wiadomości tekstowej: [Nazwa nadawcy], SUBJ: [Temat], MSG: [Treść wiadomości]. - Czyli to (przynajmniej) 21 znaków, które są przyzwyczajone do tej metody. Myślę, że (przynajmniej dla mnie) byłoby to nie do przyjęcia w przypadku większości aplikacji internetowych przeznaczonych do publicznego udostępniania.
— jessegavin


7
Masz na myśli en.wikipedia.org/wiki/List_of_SMS_gateways , ale dziękuję!
— artlung

2
W moim kraju (Argentyna) musisz płacić za SMS-y otrzymane pocztą elektroniczną (Twoi klienci mogą nie lubić)
— Eduardo Molteni

1
Jak określić, kto jest przewoźnikiem?
— Adam

9

Używam Twilio do głosowania i jestem pod dużym wrażeniem. Jestem pewien, że ich system SMS nie różni się zbytnio. Umożliwi to wysłanie wiadomości do dowolnego operatora bez znajomości adresu e-mail, na który należy wysłać (jak zauważyłem, że zmieniają się one z czasem).


Używasz ich API? Jak go używasz?
— artlung

1
Używam ich głosowego interfejsu API do wywoływania wywołań za pomocą skryptów PHP. Używam go do wykonywania połączeń i używam go do przesyłania głosu na tekst, a następnie akceptuję odpowiedzi od użytkownika.
— Darryl Hein,


4

Inne dwie opcje, które rozważałem w przeszłości:

Skype API
Wysyłaj i odbieraj SMS-y za pomocą nowego API Skype. Myślę, że Twilio jest tańszy, ale Skype jest dostępny w większej liczbie krajów (jeśli chcesz odbierać SMS-y)

Podłącz telefon do swojego serwera
Jeśli mieszkasz w kraju (takim jak Argentyna), w którym firmy zajmujące się bramami SMS dużo ładują, taniej jest kupić telefon i podłączyć go do serwera (oczywiście w zależności od środowiska hostingowego). Następnie możesz używać oprogramowania takiego jak SMSToolkit do interakcji z telefonem.



2

Napisałem taki dwukierunkowy system SMS wykorzystujący Vidicom UK jako dostawcę SMS (nie jestem pewien, czy nadal będą). Zasadniczo mają interfejs API oparty na HTTP, w którym można wysyłać i odbierać wiadomości SMS. Jest to zbyt skomplikowane, aby wyjaśnić szczegółowo, ale w istocie miałem dwie tabele bazy danych, jedną dla wiadomości przychodzących odebranych z bramy, a drugą dla wiadomości wychodzących, które są w kolejce, a następnie wysyłane do bramy.

Zasadniczo musiałem wtedy przeanalizować przychodzące wiadomości, aby sprawdzić, czy zawierają słowa kluczowe, takie jak ANULUJ lub STOP, a następnie odpowiednio przetworzyć wiadomość. Niestety, otrzymujesz wiele śmieciowych wiadomości - zdziwiłbyś się, ile osób wysyła wiadomości SMS na niewłaściwy numer - więc musisz odpowiedzieć z komunikatem „Wiadomość nie zrozumiana” itp.


2

Jeśli chcesz niedrogiego dostawcy masowych SMS-ów, z API dla programistów możesz skorzystać z www.SourceSMS.com - oferują zasięg międzynarodowy i mają skrypty, które możesz po prostu pobrać i zintegrować ze swoją witryną.


1

Inną opcją jest użycie funkcji poczty PHP i listy serwerów e-mail przewoźnika, takich jak:

Utwórz formularz HTML na pliku 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>

Następnie ustaw, gdzie poczta będzie wysyłana:

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

Wyślij wiadomość e-mail: ($ email, $ subject, $ msg, $ mailfrom będzie musiał zostać zdefiniowany i we właściwym formacie, zalecam również dezynfekcję danych wejściowych)

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

Upewnij się, że PHP ma prawidłowe ustawienia poczty w php.ini. Jeśli masz jakieś pytania, po prostu zapytaj.



0

Istnieje wielu producentów i usługodawców. Wiem Ozeki SMS Gateway. Poniższe adresy URL mogą pomóc, jeśli chcesz mieć własne rozwiązanie z własnym modemem GSM lub SMPP / UCP / CMD lub innym dostawcą. Kiedy podejmujesz decyzję, pierwsze pytanie: ile SMS-ów chcesz wysłać lub odebrać?

HTTP SMS API z przykładami .

SMS API dla programistów ASP / ASP.NET i przykłady dla programistów PHP na temat konfigurowania stron funkcji SMS mogą dostarczyć użytecznych informacji.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.