SMS API bramki
http://semland.com/sms/

 

Informacje wstepne - bramka podstawowa

Bramka posiada ograniczenia dt. wysylki smsów o tej samej treści na 1 numer w ciągu 15 minut (tzw. Blokada antyfloodowa), oraz w przypadku wysyłki smsa dokładnie o tej samej treści do ponad 15 osób w ciągu minuty.

Za SMSy nie wysłane (w razie powyższych okoliczności) oczywiście opłata nie jest naliczana.

Zabezpieczenia:
Można umożliwić dostęp do bramki tylko z wybranych numerów IP. Jeśli chcesz aktywować takie zabezpieczenie należy podać login i numery IP na adres podany na stronie.

 

 

Bramkę SMS możesz obsługiwać (przez api) wywołując w przeglądarce czy w inny sposób stronę:

http://www.semland.com/sms/sms.php?login=x&haslo=y&numer=505123456&podpis=zenek&tresc=moja+madra+tresc

Gdzie w miejsce x wpisz swoj login, a y swoje haslo.

Dane jakie przesylamy do bramki to
- numer (9-cyfrowy numer do polskich sieci - bez "+48" etc.)
- login i haslo (wymagane)
- podpis (moze byc pusty, w standardzie urlencode - tak samo jak tresc, dla kompatybilnosci z roznymi modelami komorek lepiej unikac znaków specjalnych i polskich liter)
- tresc (nie moze byc pusta, do 160 znaków - (podpis + 3), wszelkie znaki specjalne polskie litery etc. będą ucinane

UWAGA!! w tresci mogą być tylko dozwolone znaki (wszystkie alfanumeryczne, zamiast spacji znak + możliwe jest też wysyłanie innych znaków jednak po odpowiedniej zamianie najlepiej treść smsa potraktować funkcją urlencode()

Po przesłaniu powyższych informacji bramka wyrzuca na ekran odpowiedź.

 

Liczba określająca kod błędu jest ładowana do odpowiedniego nagłówka strony z odpowiedzią bramki za pomocą komend

header("X-SL-ERROR: $code");
header("X-SL-SCODE: $limit");

Gdzie $limit ilość sms, ważna tylko gdy $code jest równy 0, a $code jako kod błędu może przyjmować wartości:

0 - wyslano poprawnie
1 - limit przekroczony
2 - bledne haslo lub login
3 - blad serwera smsc
4 - nieprawidlowy format numeru telefonu
5 - tresc jest pusta
6 - brak uprawnien dla tego IP
7 - konto zablokowane
8 - tylko wap
9 - niezdefiniowany

 

Innym sposobem analizy odpowiedzi bramki jest sprawdzanie kodu html jaki bramka wyrzuca w odpowiedzi (nagłówek pomijamy)

$blnd zdefiniowane jest jako:
"<br><br><br>Lepiej <a href=javascript:history.back();>cofnij sie i popraw.</a>";

 Liczba określająca kod błędu jest ładowana jest także na sam początek komunikatu w nawiasie [], w nastepnym nawiasie gdy kod jest równy [0] jest limit.

Jeśli wszystko jest OK bramka zwraca zawsze [0] tzn:

___________________________________________________
0 - sprawdzenie limitu OK
gdy zamiast numeru telefonu wpisany jest tekst "limit"
"[[ile]]\n"
gdzie ile to liczba np. 32

___________________________________________________
0 - wyslanie wiadomosci OK
"OK.<br><br>".
"Wiadomosc wyslano do numer<br><br>".
"Limit: [[ile]] <br><br>".
"[[komunikat]]<br><a href=http://www.ripe.net/perl/whois?[[ip]]>[[host]]</a>\n".
"<br><br><br><a href=javascript:history.back();>Powrot...</a>"

 

Błędy:

___________________________________________________
1 - limit przekroczony
"Przekroczyles limit"

 ___________________________________________________
2 - zle haslo
"SMSAPI ERROR.<br><br>".
"\nNieprawidlowa nazwa uzytkownika lub haslo.$blnd"
odpowiedz w naglowku tez

___________________________________________________
3 - inny blad
"SMSAPI ERROR.<br><br>".
"Użytkownik nazwa (numer) zalogował się.<br>".
"Wiadomosci nie przeslano.\n<br>".
"\n<br>Odpowiedz serwera: odpowiedz $blnd"
odpowiedz w naglowku tez

___________________________________________________
4 - zly numer (nieprawidlowy)
"Nieprawidlowy numer (numer).$blnd"

___________________________________________________
5 - tresc jest pusta (a nie moze byc)
"Musisz wpisac tresc SMS'a.$blnd"

___________________________________________________
6 - brak uprawnien dla tego IP
"SMSAPI ERROR.<br><br>"."Brak uprawnien dla $REMOTE_ADDR.$blnd"

___________________________________________________
7 - konto zablokowane

___________________________________________________
8 - tylko wap
"SMSAPI ERROR.<br><br>"."SMS nie wyslany. Uzytkownik jest przypisany wylacznie do bramki WAP (wap.9gr.prv.pl).$blnd"

___________________________________________________
9 - niezdefiniowany jeszcze

___________________________________________________
Inne możliwe błędy zaistniałe po stronie bazy danych użytkowników (przy code równym 3):
(jest mała szansa aby kiedykolwiek się pojawiły, jednak jeśli się pojawią to nie ładują do nagłówka kodów błędów)

Nie mozna polaczyc z serwerem bazy danych
"Server SMS API: Could not connect.$blnd"
nie mozna polaczyc z baza danych

"DataBase SMS API: Could not connect.$blnd"
bledne dane autoryzacji dla bazy danych

"SMS API: Blad autoryzacji.$blnd"

Odpowiedzi serwera w przypadku wyjatkow:
Gdy tresc jest zbyt dluga:
"Sms jest zbyt dlugi. Maksymalna dlugosc 160 znakow. Przekroczono o 97 znakow."

 

 

Na prośbe użytkowników powstało także API z uproszczonymi odpowiedziami:

 

Bramkę SMS możesz obsługiwać także przez link api.php zamiast sms.php tzn:

http://www.semland.com/sms/api.php?login=x&haslo=y&numer=505123456&tresc=moja+madra+tresc

Gdzie login, haslo (x,y), numer i tresc są w tym samym formacie co w sms.php.


Po przesłaniu powyższych informacji bramka wyrzuca na ekran uproszczoną odpowiedź w formacie:

{kod:oznaczenie tekstowe kodu:limit}

    0 - wyslano poprawnie
    1 - limit przekroczony
    2 - bledne haslo lub login
    3 - blad serwera smsc
    4 - nieprawidlowy format numeru telefonu
    5 - tresc jest pusta
    6 - brak uprawnien dla tego IP
    7 - konto zablokowane
    8 - tylko wap
    9 - niezdefiniowany

Przykładowe wyniki:

{0:wyslano poprawnie:20}

{2:bledne haslo lub login:0}

{4:nieprawidlowy format numeru telefonu:0}

 

Przykładowy program obsługujący SMS API bramki 9gr SMS to sms9gr (zajmuje tylko 18kb)

Wywołuję się go z lini komend* z argumentami:

C:\sms9gr.exe sms;numer telefonu;tresc mojego smsa ;podpis;login;haslo

Jesli program jest w katalogu systemowym windows lub z którego wywołujemy komende nie trzeba wpisywać ścieżki adresu.
Nie trzeba również wpisywać rozszerzenia programu .exe

Przykładowe wywołania:

sms9gr sms;501234567;tresc mojego smsa;heniu;X;Y

sms9gr sms;501234567;krotka tresc;;X;Y

C:\program\sms9gr sms;501234567;krotka tresc;;X;Y

Gdzie X i Y to oczywiście odpowiednio login i hasło.


* Linia komend oznacza sposób wywoływania wyżej zdefiniowanych komend.
Można to zrobić wpisując taką komendę (lub wiele takich komend) do pliku tekstowego i zmienić jego rozszerzenie na .bat
Po wywołaniu takiego pliku uruchomi się nasz program i sms zostanie wysłany tyle razy razy ile to zdefiniowaliśmy (opcja przydatna do szybkiego wysyłania smsów do różnych ludzi, z o różnej treści)

Innym sposobem to utworzenie skrótu (prawy przycisk - nowy - utwórz skrót jako lokalizacje elementu należy podać program sms9gr.exe następnie należy we właściwosciach skrótu wpisać odpowiednie parametry programu tzn. np. sms;501234567;krotka tresc;;X;Y
Komende można wywołać wpisując ją w start->uruchom (klawisz windows + r) lub też z cmd.exe.

Program zapisuje logi ze stanem czy wysłał sms i na jaki numer w katalogu programu w pliku "sms9gr.log".

 

Wszelkie dodatkowe informacje można uzyskać pisząc pod adres dostępny na stronie http://semland.com/sms