Як додати функціональність SMS-повідомлень на свій веб-сайт?


57

Я хочу додати можливість надсилати нагадування людям електронною поштою та SMS для конкретних подій, на які вони підписалися у веб-додатку, який я будую. Частина електронної пошти не є складною, але мені цікаво, де знайти хороше рішення для надсилання SMS-повідомлень.

Також було б плюсом, якби це рішення дозволило двосторонній SMS-зв’язок із моїм веб-додатком, щоб люди могли відповісти за допомогою підтвердження або відмови від повідомлення.

Хтось реалізував щось подібне? Хтось знає про хороші інструменти там?

EDIT: Я розумію, що це скоріше питання про "безліч способів зняти цю кішку", і тому я змінив її на вікі спільноти.


+1, я знаю про десяток односторонніх постачальників SMS-повідомлень, але жоден не повертається, якщо відповідь отримана.
Тім Пост

Я додав щедрості цього питання, сподіваючись покращити відповіді на це питання.
artlung

jessegavin, Якщо ти хочеш вибрати найкращу відповідь, не соромтесь - щедрість закінчується завтра!
artlung

Відповіді:


25

Мені довелося кілька разів відредагувати цю відповідь, оскільки послуги, які я спочатку рекомендував, припинили свою діяльність. Я вважаю, що новим лідером галузі є Twilio , вони мають чудовий API та прийнятні ціни. Деякі альтернативи, які варто розглянути, - це Tropo , Plivo та Nexmo .

Я деякий час використовував IMified , щоб робити подібні до цього речі, і я виявив, що це добре працює. Це дозволяє вам отримувати SMS (або повідомлення у Twitter та чат) як HTTP POST, а відповідь вашого веб-сервера надсилається як відповідь. Вони також пропонують веб-сервіс, який можна використовувати для ініціювання розмови та надсилання повідомлень .

Поки я шукав інші варіанти, я натрапив на Zeep Mobile (Примітка: Zeep Mobile більше не буде працювати з 8.01.2013), який має API для надсилання та отримання SMS. Він є безкоштовним і підтримується рекламою, або доступний за певну плату. Я цього не пробував, але це виглядає досить цікаво.

Ви також можете використовувати шлюз SMS, як ClickATell .

Удачі!

EDIT: Я знайшов запитання щодо StackOverflow, яке містить набагато більше пропозицій, деякі можуть бути застарілими.


Я також використовую CLickATell, і я задоволений їх сервісом.
Алекс

Я збираюся прислухатись до платної послуги Plivo, що дуже добре. Ми звикли використовувати Twilio, який також є видатним, але коштує більше.
Френк

15

У мене був друг, якому вдалося реалізувати це електронною поштою. Я вважаю, що він зробив це точно так само, як рекомендує цей сайт :

T-Mobile: PhoneNumber @ tmomail.net
Virgin Mobile: PhoneNumber @ vmobl.com
Сінгулар: PhoneNumber @ cingularme.com
AT & T: phonenumber@txt.att.net
Спринт: PhoneNumber @ messaging.sprintpcs.com
Verizon: PhoneNumber @ vtext.com
некстель : phonenumber @ messaging.nextel.com

де номер телефону = ваш 10-значний номер телефону


1
Я лише перевірив це, і мій оператор (AT&T) додав З початку: [Ім'я відправника], SUBJ: [Тема], MSG: [Зміст повідомлення] до початку текстового повідомлення. - Отже, це (як мінімум) 21 символ, який звикає до цього методу. Я думаю, що (принаймні для мене) це було б не прийнятно для більшості публічних веб-додатків.
jessegavin

3
@artlung en.wikipedia.org/wiki/List_of_carriers_providing_SMS_transitis досить вичерпний список.
Яхель

7
Ви маєте на увазі en.wikipedia.org/wiki/List_of_SMS_gateways , але дякую!
artlung

2
У моїй країні (Аргентина) вам доведеться оплачувати SMS, отримані електронною поштою (Вашим клієнтам це може не сподобатися)
Eduardo Molteni

1
Як визначити, хто такий перевізник?
Адам

9

Я використовую Twilio для голосу, і мене дуже вразило. Я впевнений, що їх система SMS не сильно відрізняється. Це дозволить вам надіслати будь-якого оператора, не знаючи електронної адреси, на яку потрібно надіслати (як я помітив, що вони змінюються з часом).


Отже, ви використовуєте їх API? Як ти це використовуєш?
artlung

1
Я використовую їхній голосовий API для здійснення дзвінків, що ініціюються через скрипти PHP. Я використовую його для здійснення дзвінків і використовую його для передачі голосу в тексті та прийому відповідей від користувача.
Дарріл Хайн


4

Інші два варіанти, які я розглядав у минулому:

Skype API
Надсилання та отримання SMS за допомогою нового Skype API. Я думаю, Twilio дешевший, але Skype доступний у більшості країн (якщо ви хочете отримувати SMS)

Підключіть телефон до свого сервера
Якщо ви живете в країні (наприклад, Аргентина), де компанії з шлюзових повідомлень платять багато, вам може бути дешевше придбати телефон і підключити його до свого сервера (звичайно, залежно від вашого хостинг-середовища). Тоді ви можете використовувати програмне забезпечення типу SMSToolkit для взаємодії з телефоном.



2

Я написав таку двосторонній SMS-систему, що використовує Vidicom UK як постачальник SMS (не впевнений, чи продовжують працювати). В основному вони мають API на основі HTTP, куди ви можете надсилати та отримувати SMS-повідомлення. Це занадто складно, щоб детально пояснити, але по суті у мене були дві таблиці баз даних, одна для вхідних повідомлень, отриманих від шлюзу, і інша для вихідних повідомлень, які ставляться в чергу, а потім надсилаються на шлюз.

Тоді я повинен був проаналізувати вхідні повідомлення, щоб побачити, чи містять вони такі ключові слова, як CANCEL або STOP, а потім обробити повідомлення відповідно. На жаль, ви отримуєте багато сміттєвих повідомлень - ви здивуєтеся, скільки людей надсилає SMS-повідомлення на неправильну кількість - тому вам доведеться відповісти, сказавши "Повідомлення не зрозуміло" тощо.


2

Якщо ви хочете доступного масового постачальника SMS, за допомогою API розробника ви можете використовувати www.SourceSMS.com - вони пропонують міжнародне покриття, і у них є сценарії, які ви можете просто завантажити та інтегрувати у свій веб-сайт.


1

Ще одним варіантом є використання функції пошти PHP та списку серверів електронної пошти оператора, наприклад:

Створіть форму HTML у файлі 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>

Потім встановіть, куди буде надіслана пошта:

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

Надішліть пошту: ($ email, $ subject, $ msg, $ mailfrom потрібно буде визначити та у належному форматі, рекомендуйте також провести санітарні введення)

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

Переконайтеся, що PHP має дійсні налаштування пошти у php.ini. Якщо у вас є якісь питання, просто запитайте.



0

Є багато виробників та постачальників послуг. Я знаю шлюз SMS Ozeki. Наведені нижче URL-адреси можуть допомогти вам, якщо ви хочете влаштувати рішення з власним gsm-модемом або SMPP / UCP / CMD або іншим провайдером. Коли ви приймаєте рішення про відмову, перше питання: скільки SMS ви хочете надіслати або отримати?

HTTP SMS API з прикладами .

API API для розробників ASP / ASP.NET та приклади для розробників PHP про те, як налаштувати сторінки функціональних повідомлень SMS, можуть дати вам корисну інформацію.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.