Tworząc aplikacje internetowe często zachodzi potrzeba implementacji modułu do wysyłki SMS.
Może to być informacja o zmianie statusu zamówienia złożonego w sklepie internetowym, może to być jakiś ważny komunikat systemowy dotyczący konta w serwisie, może to być powiadomienie o wystąpieniu jakiegoś zdarzenia, które monitoruje klient (np. pojawienie się oferty spełniającej ustawione kryteria) lub po prostu mechanizm weryfikacji wysyłający kod na telefon. Potrzeby wdrożeń powiadomień SMS’owych z pewnością można mnożyć.
Wdrażając moduł powiadomień SMS należy mieć na uwadze, że komunikacja SMS’owa nadaje przekazywanej wiadomości dużo większy priorytet niż e-mail czy powiadomienie w aplikacji na smartfona, nic bardziej nie irytuje użytkownika niż spam w SMS’ach.
Obecnie w internecie znaleźć można bardzo wiele bramek/serwisów oferujących mniej lub bardziej zaawansowane systemy do obsługi powiadomień sms.
Jak to działa?
Wdrożenie modułu SMS jest na prawdę proste i nieskomplikowane, opiera się na 3 krokach:
- Rejestrujesz się w serwisie obsługującym wysyłki SMS. Ściągasz klienta API czyli bibliotekę przez którą łączysz się z systemem obsługującym wysyłkę.
- Wprowadzasz namiary autoryzacyjne (login/hasło/hash autoryzujący) tak aby system mógł zidentyfikować żądanie wysyłki.
- Wdrażasz wywołanie API do aplikacji.
Należy w tym miejscu rozróżnić bramkę sms od usługi sms api. Zwykła bramka sms jedynie umożliwia ręczne wprowadzenie wiadomości natomiast w aplikacji potrzebujemy mechanizmu automatycznego, czyli dostęp przez API.
Który serwis do wysyłki SMS wybrać?
Jak wspomniałem wcześniej, serwisów do wysyłki SMS jest wiele, zdecydowana większość jest płatna a ceny wahają się w granicach od kilku do kilkunastu groszy za SMS, czyli w budżecie np. 100 zł dostępnych jest 1428 smsów w cenie 0,07 zł każdy. Myślę, że przy takim niskim koszcie wysyłki nie opłaca się szukać na siłę darmowych niekoniecznie sprawdzonych i dobrze działających alternatyw.
Ja w projekcie wybrałem SMSAPI.pl. Dlaczego?
- Profesjonalnie napisany klient php, dostępny od ręki w composerze.
- Bardzo dobrze przygotowany dział dla developera (smsapi.pl/dev) z wieloma gotowymi modułami i przykładowymi integracjami.
- Mnogość opcji wysyłki wiadomości ECO, PRO, ze zdefiniowanym nadawcą lub bez, MMS, VMS, odbiór wiadomości.
- Szybkość działania, większość wiadomości dostarczane jest w czasie do 10 sekund.
- Przejrzysty serwis internetowy i panel klienta, możliwość wysyłki bezpośrednio z panelu klienta.
Przykład użycia API
<?php require_once 'smsapi/Autoload.php'; $client = new \SMSApi\Client('login'); // Ustawiamy hasło, w panelu klienta możemy wygenerować hasło różne od hasła do panelu klienta, wysyłkę można też zabezpieczyć IPkami. $client->setPasswordHash( 'haslo w md5' ); // Inicjalizujemy klienta API $smsapi = new \SMSApi\Api\SmsFactory(); $smsapi->setClient($client); try { $actionSend = $smsapi->actionSend(); $actionSend->setTo('600xxxxxx'); $actionSend->setText('Hello World!!'); //Pole nadawcy lub typ wiadomość 'ECO', '2Way' $actionSend->setSender('Info'); $response = $actionSend->execute(); foreach( $response->getList() as $status ) { echo $status->getNumber() . ' ' . $status->getPoints() . ' ' . $status->getStatus(); } } // Przechwytujemy ewentualne błędy, będą one automatycznie widoczne w panelu klienta. catch( \SMSApi\Exception\SmsapiException $e ) { echo 'ERROR: ' . $e->getMessage(); }