Plus GSM
Bramka sms.plus.pl (http://www1.plus.pl/bsm/)
Orange
Bramka Mbox
T-Mobile
Bramka Sponsorowana API - darmowa do 10 sms./dzień
Play
Bramka Play24
Gadu-Gadu
Gateway
Bramka sms.plus.pl (http://www1.plus.pl/bsm/)
- Na serwerze Web obsługującym PHP (i curl) umieść poniższy kod sms.plus-bsm.php
PHP:<?php /* * 2013.08.01 Silas Mariusz Grzybacz * * QNAP CLUB www.qnapclub.pl * * Based on perl's sms.miastoplusa.pl * http://code.google.com/p/skrypty-sms/ */ if (get_magic_quotes_gpc()) { function stripslashes_array(&$arr) { foreach ($arr as $k => &$v) { $nk = stripslashes($k); if ($nk != $k) { $arr[$nk] = &$v; unset($arr[$k]); } if (is_array($v)) { stripslashes_array($v); } else { $arr[$nk] = stripslashes($v); } } } stripslashes_array($_POST); stripslashes_array($_GET); stripslashes_array($_REQUEST); stripslashes_array($_COOKIE); } $conf = array ( "login" => "username", "password" => "password", "sender" => "QNAPCLUB", "number" => "", "message" => "", "useragent" => "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)", "cookiepath" => dirname(__FILE__) . "/cookies.txt", "timeout" => 10, "separate" => chr(124) ); function sendSms() { global $conf; $post = array ( "login=". $conf["login"], "action=login", "password=". $conf["password"], "success-url=http://www1.plus.pl/bsm/auth" ); $c = curl_init(); curl_setopt($c, CURLOPT_URL, "https://www1.plus.pl/sso/logowanie/auth"); curl_setopt($c, CURLOPT_POST, true); curl_setopt($c, CURLOPT_POSTFIELDS, implode("&", $post)); curl_setopt($c, CURLOPT_COOKIEFILE, $conf["cookiepath"]); curl_setopt($c, CURLOPT_COOKIEJAR, $conf["cookiepath"]); curl_setopt($c, CURLOPT_USERAGENT, $conf["useragent"]); curl_setopt($c, CURLOPT_TIMEOUT, $conf["timeout"]); curl_setopt($c, CURLOPT_FOLLOWLOCATION, true); curl_setopt($c, CURLOPT_RETURNTRANSFER, true); curl_exec($c); curl_close($c); $header = array ( 'Accept-Language: pl,en-us;q=0.7,en;q=0.3', 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1', 'Host: www1.plus.pl', 'Accept-Encoding: gzip,deflate', 'Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7', 'Keep-Alive: 300', 'Connection: keep-alive', 'Pragma: no-cache', 'Cache-Control: no-cache', 'Content-Type: text/x-gwt-rpc; charset=utf-8', 'X-GWT-Permutation: 22E4064F5698D299DC724EC04F1478DC', 'X-GWT-Module-Base: http://www1.plus.pl/bsm/', 'Referer: http://www1.plus.pl/bsm/' ); $s = $conf["separate"]; $sms = "7".$s."0".$s."10".$s."http://www1.plus.pl/bsm/".$s."E23E25B5B18D1CA333516D75EAF0966A".$s. "pl.plus.map.bsm.gwt.client.service.SendSmsService".$s."send".$s. "pl.plus.map.bsm.core.gwt.dto.MessageTO/1868309509".$s."48c4f749a5f2b2253c0932b85699e9ec".$s. $conf["message"].$s."".$s.$conf["number"].$s.$conf["sender"]. $s."1".$s."2".$s."3".$s."4".$s."1".$s."5".$s."5".$s."0".$s."0".$s."0".$s."0".$s."6".$s."0".$s."0". $s."7".$s."0".$s."0".$s."0".$s."0".$s."0".$s."0".$s."1".$s."1".$s."0".$s."0".$s."0".$s."0".$s."0". $s."0".$s."0".$s."0".$s."0".$s."0".$s."0".$s."0".$s."0".$s."0".$s."0".$s."0".$s."0".$s."8".$s."9". $s."0".$s."0".$s."0".$s."10".$s."0".$s."0".$s."8".$s."0".$s."0".$s."0".$s."0".$s ; $c = curl_init(); curl_setopt($c, CURLOPT_URL, "http://www1.plus.pl/bsm/service/SendSmsService"); curl_setopt($c, CURLOPT_POST, true); curl_setopt($c, CURLOPT_POSTFIELDS, $sms); curl_setopt($c, CURLOPT_HTTPHEADER, $header); curl_setopt($c, CURLOPT_REFERER, "http://www1.plus.pl/bsm/"); curl_setopt($c, CURLOPT_COOKIEFILE, $conf["cookiepath"]); curl_setopt($c, CURLOPT_COOKIEJAR, $conf["cookiepath"]); curl_setopt($c, CURLOPT_USERAGENT, $conf["useragent"]); curl_setopt($c, CURLOPT_TIMEOUT, $conf["timeout"]); curl_setopt($c, CURLOPT_FOLLOWLOCATION, true); curl_setopt($c, CURLOPT_RETURNTRANSFER, true); $return = curl_exec($c); curl_close($c); if (preg_match("/java\.util\.Date/", $return)) { return true; } else { return false; } } if ($_GET['login'] != "") { $conf["login"] = $_GET['login']; } if ($_GET['password'] != "") { $conf["password"] = $_GET['password']; } if ($_GET['number'] != "") { $conf["number"] = $_GET['number']; } if ($_GET['sender'] != "") { $conf["sender"] = $_GET['sender']; } if ($_GET['message'] != "") { $conf["message"] = $_GET['message']; } echo "<pre> ------------------------------------------------------------------------------- login : ". $conf["login"] ." password: <secret> sender : ". $conf["sender"] ." number : ". $conf["number"] ." message : ". $conf["message"] ." -------------------------------------------------------------------------------\n"; if (sendSMS()) { echo "Status (0): Message sent! \n"; } else { echo "Status (127): Unknown or un'def error. \n"; } echo "------------------------------------------------------------------------------- </pre>"; ?>
- W ustawieniach serwera SMSC dodaj usługodawcę "Plus BSM"
- Jako szablon tekstowy URL wpisz poniższy link podmieniając adres i ścieżkę na własną lub korzystaj z podanej:
Code:http://pool.qnapclub.pl/projects/tools/smsc-poland-26001/sms.plus-bsm.php?login=@@UserName@@&password=@@Password@@&number=@@PhoneNumber@@&message=@@Text@@&sender=NAS
- Po zapisaniu ustawień, wybierz z listy dodanego usługodawcę i podaj login oraz hasło do bramki SMS.
(Rejestracja jest darmowa i nie wymaga posiadania telefonu w sieci: Logowanie) - W powiadomieniach o alertach zaznacz powiadomienia SMS, a w ustawieniach powiadomień wprowadź docelowy numer telefonu.
Orange
Bramka Mbox
- Na serwerze Web obsługującym PHP (i curl) umieść poniższy kod sms.orange-mbox-2014-2.php
PHP:<?php /* Skrypt zawiera dwie funkcje CURL obsługująca mBox'a orange.pl. Skrypt wykorzystuje Xpath'a. PHP 5*... Skrypt pozwala na wysyłanie długich smsów, dzieli wpisany tekst na 640 znaków akceptowanych przez bramkę i wysyła jako 'n' ilość smsów. Zachęcam do dowolnego wykorzystania, modyfikacji i ulepszania (też chciałbym kopię ;)). piotr eldora pl 20130604 */ /* Ustawienie zmiennych użytkownika, wystarczy wpisać dane i skrypt będzie po prostu działał */ if (get_magic_quotes_gpc()) { function stripslashes_array(&$arr) { foreach ($arr as $k => &$v) { $nk = stripslashes($k); if ($nk != $k) { $arr[$nk] = &$v; unset($arr[$k]); } if (is_array($v)) { stripslashes_array($v); } else { $arr[$nk] = stripslashes($v); } } } stripslashes_array($_POST); stripslashes_array($_GET); stripslashes_array($_REQUEST); stripslashes_array($_COOKIE); } $login = 'username'; // nazwa użytkownika orange.pl $password = 'password'; // hasło do orange.pl $number = ''; // numer odbiorcy (+48xxxxxxxxx) $content = ''; // treść wiadomości if ($_GET['login'] != "") { $login = $_GET['login']; } if ($_GET['password'] != "") { $password = $_GET['password']; } if ($_GET['number'] != "") { $number = '+'.$_GET['number']; } if ($_GET['message'] != "") { $content = $_GET['message']; } echo "<pre> ------------------------------------------------------------------------------- login : ". $login ." password: <secret> number : ". $number ." message : ". $content ." -------------------------------------------------------------------------------\n"; // określenie użytkownia oraz hasła do portalu orange.pl $user = $login; $pass = $password; // określenie danych wiadomości sms //$number = $_GET['to']; $msg = $content; // ------------------------------ // /* Ustawienia podstawowych zmiennych skryptu */ // ustawienie klienta $userAgent = $_SERVER['HTTP_USER_AGENT']; //$userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3'; // ustawienia pliku cookie, należy się upewnić, że można zapisywać $cookie = '/tmp/'.md5(microtime()); // Czy usunąć wiadomość po wysłaniu? $usun = 1; // określenie wykorzystywanych URL $startURL = 'https://www.orange.pl/zaloguj.phtml'; $loginURL = 'https://www.orange.pl/zaloguj.phtml?_DARGS=/ocp/gear/infoportal/portlets/login/login-box.jsp'; $smsURL = 'https://www.orange.pl/portal/map/map/message_box?mbox_view=newsms'; $sendURL = 'https://www.orange.pl/portal/map/map/corpo_message_box?_DARGS=/gear/mapmessagebox/smsform.jsp'; $sentURL = 'https://www.orange.pl/portal/map/map/corpo_message_box?mbox_view=sentmessageslist&mbox_folder=Sent'; $trashURL = 'https://www.orange.pl/portal/map/map/corpo_message_box?mbox_view=messageslist&mbox_folder=Trash'; $logoutURL = 'https://www.orange.pl/portal/map/map/corpo_message_box?_DARGS=/portal/layoutTemplates/html/header_welcome.jsp.1'; /* * * Koniec zmiennych kontrolnych * */ // fukcja pobierania stron function curl_get ($url) { global $userAgent,$cookie; $ch = curl_init(); // curl_setopt($ch, CURLOPT_VERBOSE, true); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERAGENT, $userAgent); curl_setopt($ch, CURLOPT_COOKIEJAR,$cookie); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_VERBOSE, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); $out = curl_exec($ch); curl_close($ch); return $out; } // funkcja wysyłania danych do formularzy function curl_post ($url,$data,$referer) { global $userAgent,$cookie; $ch = curl_init(); // curl_setopt($ch, CURLOPT_VERBOSE, true); curl_setopt($ch, CURLOPT_TIMEOUT, 20); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERAGENT, $userAgent); curl_setopt($ch, CURLOPT_REFERER, $referer); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); $out = curl_exec($ch); curl_close($ch); return $out; } /* funkcja szukająca błędów na stronie, niestety nie może być uniwersalna, ponieważ w przypadku logowania curl wysyła POST do przekierowywanego GET. Można to obejść i jest to na liście todo... */ function error_check ($page) { $doc = new DOMDocument(); @$doc ->loadHTML($page); $xpath = new DOMXPath($doc); $error = $xpath->evaluate('//div[@class="box-error"]/p'); if ($error -> length > 0) { for ($n=0;$n < $error->length;$n++) { $error_text = $error ->item($n) -> nodeValue; echo $error_text . "<br>\n"; } $fp = fopen('page.html', 'w'); fwrite($fp,$page); fclose($fp); exit; } return false; } // funkcja wysyłająca sms'y function send_sms ($msg,$number) { global $sendURL,$smsPost,$smsURL; // Wyszukiwanie tokena $doc = new DOMDocument(); @$doc->loadHTML(curl_get($smsURL)); $xpath = new DOMXPath($doc); $token = $xpath->evaluate('//input[@name="/amg/ptk/map/messagebox/formhandlers/MessageFormHandler.token"]')->item(0)->getAttribute('value'); $sesToken = $xpath->evaluate('//input[@name="_dynSessConf"]')->item(0)->getAttribute('value'); // Formularz wysyłania wiadomości sms $smsData = array( '_dyncharset' => 'UTF-8', '_dynSessConf' => $sesToken, '/amg/ptk/map/messagebox/formhandlers/MessageFormHandler.type' => 'sms', '_D:/amg/ptk/map/messagebox/formhandlers/MessageFormHandler.type' => ' ', 'enabled' => 'true', '/amg/ptk/map/messagebox/formhandlers/MessageFormHandler.errorURL' => '/portal/map/map/message_box?mbox_view=newsms', '_D:/amg/ptk/map/messagebox/formhandlers/MessageFormHandler.errorURL' => ' ', '/amg/ptk/map/messagebox/formhandlers/MessageFormHandler.successURL' => '/portal/map/map/message_box?mbox_view=messageslist', '_D:/amg/ptk/map/messagebox/formhandlers/MessageFormHandler.successURL' => ' ', '/amg/ptk/map/messagebox/formhandlers/MessageFormHandler.to' => $number, '_D:/amg/ptk/map/messagebox/formhandlers/MessageFormHandler.to' => ' ', '_D:/amg/ptk/map/messagebox/formhandlers/MessageFormHandler.body' => ' ', '/amg/ptk/map/messagebox/formhandlers/MessageFormHandler.body' => $msg, '/amg/ptk/map/messagebox/formhandlers/MessageFormHandler.token' => $token, '_D:/amg/ptk/map/messagebox/formhandlers/MessageFormHandler.token' => ' ', '/amg/ptk/map/messagebox/formhandlers/MessageFormHandler.create.x' => '0', '/amg/ptk/map/messagebox/formhandlers/MessageFormHandler.create.y' => '0', '_D:/amg/ptk/map/messagebox/formhandlers/MessageFormHandler.create' => ' ', '_DARGS' => '/gear/mapmessagebox/smsform.jsp' ); $smsPost = ''; foreach ($smsData as $a => $b) { $smsPost .= urlencode($a). '=' .urlencode($b). '&'; } $smsPost = substr($smsPost,0,-1); // Wysyłanie wiadomości $send = curl_post($sendURL,$smsPost,$smsURL); error_check($send); return $send; } // Strona początkowa logowania $startPage = curl_get($startURL); $doc = new DOMDocument(); @$doc->loadHTML($startPage); $xpath = new DOMXPath($doc); $sesToken = $xpath->evaluate('//input[@name="_dynSessConf"]')->item(0)->getAttribute('value'); // Formularz logowania do portalu orange.pl $loginData = array( '_dyncharset' => 'UTF-8', '_dynSessConf' => $sesToken, '/tp/core/profile/login/ProfileLoginFormHandler.loginErrorURL' => 'https://www.orange.pl/zaloguj.phtml', '_D:/tp/core/profile/login/ProfileLoginFormHandler.loginErrorURL' => ' ', '/tp/core/profile/login/ProfileLoginFormHandler.loginSuccessURL' => '', '_D:/tp/core/profile/login/ProfileLoginFormHandler.loginSuccessURL' => ' ', '/tp/core/profile/login/ProfileLoginFormHandler.firstEnter' => 'true', '_D:/tp/core/profile/login/ProfileLoginFormHandler.firstEnter' => ' ', '/tp/core/profile/login/ProfileLoginFormHandler.value.login' => $user, '_D:/tp/core/profile/login/ProfileLoginFormHandler.value.login' => ' ', '/tp/core/profile/login/ProfileLoginFormHandler.value.password' => $pass, '_D:/tp/core/profile/login/ProfileLoginFormHandler.value.password' => ' ', '_D:/tp/core/profile/login/ProfileLoginFormHandler.rememberMe' => ' ', '/tp/core/profile/login/ProfileLoginFormHandler.login.x' => '0', '/tp/core/profile/login/ProfileLoginFormHandler.login.y' => '0', '_D:/tp/core/profile/login/ProfileLoginFormHandler.login' => ' ', '_DARGS' => '/ocp/gear/infoportal/portlets/login/login-box.jsp' ); // Poprawienie stringów $loginPost = ''; foreach ($loginData as $a => $b) { $loginPost .= urlencode($a). '=' .urlencode($b). '&'; } $loginPost = substr($loginPost,0,-1); // Logowanie $login = curl_post($loginURL,$loginPost,$startURL); if (preg_match('/Podałeś błędny login lub hasło. Sprawdź je i wpisz jeszcze raz/', $login)) { echo "Błędne dane użytkownika.<br>\n"; exit; } if (preg_match('/wyloguj/', $login)) { echo "Zalogowano pomyślnie.<br>\n"; flush(); } else { echo "Serwer przesłał nieoczekiwany status procesu logowania, sprawdź adres url strony logowania.<br>\n"; $fp = fopen('/tmp/orange_login.html', 'w'); fwrite($fp,$login); fclose($fp); exit; } //error_check($login); /* * * Wysyłanie wiadomości * */ // dzieli wiadomości dłuższe niż 638 znaków na kilka sms'ów if (strlen($msg) >640) { // sprawdza długość sms'a $msg = str_split($msg,640); // dzieli sms'a na kilka wiadomości $n_sms = count($msg); // zlicza ilość wiadomości do wysłania for ($n=0;$n<$n_sms;$n++) { $sent = send_sms($msg[$n],$number); echo "Wysłano część ".($n+1)." z $n_sms.<br>\n"; flush(); // sleep(3); } } else { $n_sms = 1; $sent = send_sms($msg,$number); } if (!error_check($sent)) { echo "<br>Wiadomość wysłano poprawnie.<br>\n"; $doc = new DOMDocument(); @$doc -> loadHTML($sent); $xpath = new DOMXPath($doc); $nsms1 = $xpath->evaluate('//div[@id="syndication"]//p[@class="item"]/span[@class="value"]')->item(0)->nodeValue; $nsms2 = $xpath->evaluate('//div[@id="syndication"]//p[@class="item"]/span[@class="value"]')->item(1)->nodeValue; echo "Pozosotało $nsms1 bezpłatnych smsów oraz $nsms2 dodatkowych.<br>\n"; } // Usuwanie wiadomości if ($usun = 1) { echo "Usuwanie wiadomości.<br>\n"; $sent = curl_get($sentURL); $doc = new DOMDocument(); //@$doc->loadHTMLFile("sent.html"); @$doc -> loadHTML($sent); $xpath = new DOMXPath($doc); $n_msg = $xpath->evaluate('count(//input[@name="/amg/ptk/map/messagebox/formhandlers/MessagesFormHandler.messages"])'); echo "Ilość wiadomości wysłanych: $n_msg, do usunięcia $n_sms.<br>\n"; $sesToken = $xpath->evaluate('//input[@name="_dynSessConf"]')->item(0)->getAttribute('value'); $postData = array( '_DARGS' => '/gear/mapmessagebox/sentmessageslist.jsp', '_dyncharset' => 'UTF-8', '_dynSessConf' => $sesToken, '/amg/ptk/map/messagebox/formhandlers/MessagesFormHandler.folder' => '', '_D:/amg/ptk/map/messagebox/formhandlers/MessagesFormHandler.folder' => ' ', '/amg/ptk/map/messagebox/formhandlers/MessagesFormHandler.successURL' => '', '_D:/amg/ptk/map/messagebox/formhandlers/MessagesFormHandler.successURL' => ' ', '/amg/ptk/map/messagebox/formhandlers/MessagesFormHandler.errorURL' => '', '_D:/amg/ptk/map/messagebox/formhandlers/MessagesFormHandler.errorURL' => ' ', '/amg/ptk/map/messagebox/formhandlers/MessagesFormHandler.delete.x' => '30', '/amg/ptk/map/messagebox/formhandlers/MessagesFormHandler.delete.y' => '12', '_D:/amg/ptk/map/messagebox/formhandlers/MessagesFormHandler.delete' => ' ', '/amg/ptk/map/messagebox/formhandlers/MessagesFormHandler.folder' => 'Sent', '_D:/amg/ptk/map/messagebox/formhandlers/MessagesFormHandler.folder' => ' ', '/amg/ptk/map/messagebox/formhandlers/MessagesFormHandler.successURL' => '/portal/map/map/message_box?mbox_folder=Sent', '_D:/amg/ptk/map/messagebox/formhandlers/MessagesFormHandler.successURL' => ' ', '/amg/ptk/map/messagebox/formhandlers/MessagesFormHandler.errorURL' => '/portal/map/map/message_box?mbox_folder=Sent', '_D:/amg/ptk/map/messagebox/formhandlers/MessagesFormHandler.errorURL' => ' ' ); $delPost = ''; foreach ($postData as $a => $b) { $delPost .= urlencode($a). '=' .urlencode($b). '&'; } $delPost = substr($delPost,0,-1); // Usuwanie wszystkich aktualnie wysłanych wiadomości for ($i=0;$i<$n_sms;$i++) { $msgid = $xpath->evaluate('//input[@name="/amg/ptk/map/messagebox/formhandlers/MessagesFormHandler.messages"]')->item($i)->getAttribute('value'); $delPost .= '&'. urlencode('/amg/ptk/map/messagebox/formhandlers/MessagesFormHandler.messages'). '=' .urlencode($msgid); $delPost .= '&'. urlencode('_D:/amg/ptk/map/messagebox/formhandlers/MessagesFormHandler.messages'). '=' .urlencode(' '); } $delPost .= '&'. urlencode('_DARGS'). '=' .urlencode('/gear/mapmessagebox/sentmessageslist.jsp'); $delPost .= '&'. urlencode('_D:/amg/ptk/map/messagebox/formhandlers/MessagesFormHandler.messages'). '=' .urlencode(' '); // Przenoszenie wiadomości do kosza curl_post($sentURL,$delPost,$sentURL); // Otwieranie kosza curl_get($trashURL); // Dostosowanie zapytania post $s = array('sentmessageslist','Sent'); $r = array('messageslist','Trash'); $delPost = str_replace($s,$r,$delPost); // Usuwanie wiadomości curl_post($trashURL,$delPost,$trashURL); // można kiedyś dodać weryfikacje... echo "Usunięto.<br>\n"; } // Formularz wylogowania z portalu orange.pl $sesToken = $xpath->evaluate('//input[@name="_dynSessConf"]')->item(0)->getAttribute('value'); $logoutData = array( '_dyncharset' => 'UTF-8', '_dynSessConf' => $sesToken, '/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.logoutSuccessURL' => '/start.phtml', '_D:/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.logoutSuccessURL' => ' ', '/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.logoutErrorURL' => '/portal/map/map/message_box?mbox_view=newsms', '_D:/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.logoutErrorURL' => ' ', '/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.logout' => 'wyloguj sie', '_D:/amg/ptk/map/core/formhandlers/AdvancedProfileFormHandler.logout' => ' ', '_DARGS' => '/portal/layoutTemplates/html/header_welcome.jsp.1' ); // Poprawienie stringów $logoutPost = ''; foreach ($logoutData as $a => $b) { $logoutPost .= urlencode($a). '=' .urlencode($b). '&'; } $logoutPost = substr($logoutPost,0,-1); $logout = curl_post($logoutURL,$logoutPost,$smsURL); unlink($cookie); ?>
- W ustawieniach serwera SMSC dodaj usługodawcę "Orange Mbox"
- Jako szablon tekstowy URL wpisz poniższy link podmieniając adres i ścieżkę na własną lub korzystaj z podanej:
Code:http://pool.qnapclub.pl/projects/tools/smsc-poland-26003/sms.orange-mbox-2014-2.php?login=@@UserName@@&password=@@Password@@&number=@@PhoneNumber@@&message=@@Text@@
- Po zapisaniu ustawień, wybierz z listy dodanego usługodawcę i podaj login oraz hasło do bramki SMS Orange Mbox. (Rejestracja jest darmowa, ale usługa tylko dla klientów: Request rejected - www.orange.pl)
- W powiadomieniach o alertach zaznacz powiadomienia SMS, a w ustawieniach powiadomień wprowadź numer telefonu.
T-Mobile
Bramka Sponsorowana API - darmowa do 10 sms./dzień
- W ustawieniach serwera SMSC dodaj usługodawcę "Era-sponsored"
- Jako szablon tekstowy URL wpisz poniższy link podmieniając adres i ścieżkę na własną lub korzystaj z podanej:
Code:http://www.era.pl/msg/api/do/tinker/sponsored?login=@@UserName@@&password=@@Password@@&number=@@PhoneNumber@@&failure=http://www.era.pl&success=http://rozrywka.era.pl&mms=false&&message=@@Text@@
- Po zapisaniu ustawień, wybierz z listy dodanego usługodawcę i podaj login oraz hasło do bramki sponsorowanej.
- W powiadomieniach o alertach zaznacz powiadomienia SMS, a w ustawieniach powiadomień wprowadź numer telefonu.
- W ustawieniach serwera SMSC dodaj usługodawcę "Era-omnix"
- Jako szablon tekstowy URL wpisz poniższy link podmieniając adres i ścieżkę na własną lub korzystaj z podanej:
Code:http://www.era.pl/msg/api/do/tinker/omnix?login=@@UserName@@&password=@@Password@@&number=@@PhoneNumber@@&failure=http://www.era.pl&success=http://rozrywka.era.pl&mms=false&&message=@@Text@@
- Po zapisaniu ustawień, wybierz z listy dodanego usługodawcę i podaj login oraz hasło do bramki sponsorowanej.
- W powiadomieniach o alertach zaznacz powiadomienia SMS, a w ustawieniach powiadomień wprowadź numer telefonu.
Play
Bramka Play24
- Na serwerze Web obsługującym PHP (i curl) umieść poniższy kod sms.p4-play24.php
PHP:<?php /** * @author Michell Hoduń * @copyright (c) 2010 Michell Hoduń <mhodun@gmail.com> * @description Klasa odpowiedzialna za wysyłanie SMS-ów z play.pl. */ class PlayMobile { /** * Wspomagacz dla CURL'a - ułatwienie dostępu * * @param string $url * @param array $post * @param string $ref * @param integer $follow * @param integer $header */ public static function curl ($url, $post = NULL, $ref = NULL, $follow = 1, $header = 1, $post_type = NULL) { $ch = curl_init ($url); curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7'); curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1); // Zapisywanie ciastek do pliku curl_setopt($ch,CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt'); curl_setopt($ch,CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookie.txt'); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); if ( ! empty($post)) { $postVars=''; foreach ($post as $option => $value) $postVars .= $option.'='.urlencode($value).'&'; curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postVars); } if($ref) curl_setopt($ch, CURLOPT_REFERER, $ref); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, $follow); $r = curl_exec($ch); curl_close($ch); return $r; } /** * Funkcja odpowiedzialna za zalogowanie się konto + zalogowanie do bramki. * * @param string $login * @param string $password */ public function DoLogin ($login, $password) { $BeforePost = array('SAMLRequest' => $this->GetGateway(), 'target'=> 'https://bramka.play.pl'); $content = $this->curl('https://logowanie.play.pl/p4-idp2/SSOrequest.do', $BeforePost, 'https://bramka.play.pl/composer/public/mmsCompose.do'); preg_match('/name="random" value="(.+?)"/', $content, $rand); $post = array('step' => 1, 'next' => 'Next', 'random' =>$rand[1], 'login' =>$login, 'password' =>$password); // Właściwe zalogowanie się $LoginDO = $this->curl('https://logowanie.play.pl/p4-idp2/Login.do',$post,'',0); $samlLog_Post = array('SAMLResponse' => $this->SAMLResponse($LoginDO), 'target'=>'https://bramka.play.pl'); $this->curl('https://bramka.play.pl/composer/samlLog?action=sso', $samlLog_Post, 'https://logowanie.play.pl/p4-idp2/SSOrequest.do'); return $this->curl('https://bramka.play.pl/composer/j_security_check', $samlLog_Post, 'https://bramka.play.pl/composer/samlLog?action=sso'); } /** * Pobierz "SAMLRequest" - wymagane do zalogowania. * * @return $SAMLRequest */ public function GetGateway() { $SAML = $this->curl('https://bramka.play.pl/composer/public/mmsCompose.do', NULL, '', 0, 0); // Wyszukaj SAMLRequest preg_match('/value="(.*)"/msU',$SAML,$w); $SAMLRequest = $w[1]; // Zwróć return $SAMLRequest; } /** * Wyciągnięcie SAMLResponse z stringa (treści strony). * * @param string $content */ public function SAMLResponse ($content) { preg_match('/value="(.*)"/msU', $content, $w); return trim($w[1]); } public function SendSMS ($odbiorca, $tresc) { $content = $this->curl('https://bramka.play.pl/composer/public/editableSmsCompose.do'); // Wyciągnij kod 'zabezpieczający' preg_match('/name="randForm" value="(.+?)"/', $content, $rand); $SMS = array('recipients' => $odbiorca, 'content_in' => $tresc, 'czas' => 0, 'sendform' => 'on', 'randForm' => $rand[1], 'old_signature' => '', 'old_content' => $tresc,'content_out' => $tresc); $content2 = $this->curl('https://bramka.play.pl/composer/public/editableSmsCompose.do', $SMS); $SMS['SMS_SEND_CONFIRMED'] = 'Wyślij'; $content3 = $this->curl('https://bramka.play.pl/composer/public/editableSmsCompose.do', $SMS); if (preg_match('/Wiadomo(.*) zosta(.*)a wys(.*)ana/',$content3)) { // Wiadomość została wysłana poprawnie return TRUE; } else { // Wiadomość nie została wysłana - wystąpił błąd podczas jej wysyłania. return FALSE; } } } // defs $login = 'username'; $password = 'password'; $number = ''; $content = ''; if ($_GET['login'] != "") { $login = $_GET['login']; } if ($_GET['password'] != "") { $password = $_GET['password']; } if ($_GET['number'] != "") { //$number = '+'.$_GET['number']; $number = $_GET['number']; } if ($_GET['message'] != "") { $content = $_GET['message']; } echo "<pre> ------------------------------------------------------------------------------- login : ". $login ." password: <secret> number : ". $number ." message : ". $content ." -------------------------------------------------------------------------------\n"; // Zaladowanie obiektu $play = new PlayMobile(); // Zalogowanie sie na konto Play $play->DoLogin($login, $password); if($play->SendSMS($number, $content)) { echo "Status (0): Message sent! \n"; } else { echo "Status (127): Unknown or un'def error. \n"; } echo "------------------------------------------------------------------------------- </pre>"; ?>
- W ustawieniach serwera SMSC dodaj usługodawcę "p4-play24"
- Jako szablon tekstowy URL wpisz poniższy link podmieniając adres i ścieżkę na własną lub korzystaj z podanej:
Code:http://pool.qnapclub.pl/projects/tools/smsc-poland-26006/sms.p4-play24.php?login=@@UserName@@&password=@@Password@@&number=@@PhoneNumber@@&message=@@Text@@
- Po zapisaniu ustawień, wybierz z listy dodanego usługodawcę i podaj login oraz hasło do bramki SMS Play24.
- W powiadomieniach o alertach zaznacz powiadomienia SMS, a w ustawieniach powiadomień wprowadź numer telefonu.
Gadu-Gadu
Gateway
- W swoim komunikatorze Gadu-Gadu, dodaj nowy kontakt numer 48280073 (qLog-IM).
- Będąc dostępnym, napisz do bota wiadomość o treści ZAPISZ.
- Zaloguj się do panelu zarządzania serwerem QNAP i w ustawieniach powiadomień, przejdź do konfiguracji serwera SMSC. Następnie dodaj nowego usługodawcę "Gadu-Gadu".
- Jako szablon tekstowy URL wpisz poniższy link:
Code:
http://pool.qnapclub.pl/projects/tools/bot-im-gadugadu/bot.php?message=@@Text@@&number=@@PhoneNumber@@
- Po zapisaniu ustawień, wybierz z listy dodanego usługodawcę. Pola nazwa użytkownika oraz hasło pozostaw puste.
- W powiadomieniach o alertach zaznacz powiadomienia SMS, a w ustawieniach powiadomień zamiast numeru telefonu podaj swój numer Gadu-Gadu.
- Od tej pory powiadomienia o alertach będziesz otrzymywał na Gadu-Gadu.
Last edited: