есть скрипт php icq бота, хочу добавить функцию отправки sms через него sms надо отправлять через сайт http://sms.smssender.org и надо сделать автозаполнения форм на сайте, чтобы можно было боту написать: !sms +79201031775 Привет кроссавчег! и он прислал sms на номер +79201031775 с текстом "Привет кроссавчег!" бот на webicqpro classe кусок бота Code: case '!stop': if($msg['from'] == ADMINUIN) { $icq->sendMessage(ADMIN, " ICQ BOT stoped"); $icq->disconnect(); exit(); как то таг
сервис действительно неробит =\\ а вов торых - в чём сопсна проблемма? отурываеш сокет - посылаш запос - выводиш результат
Ridikh, что за бот то? вообще смысл создания темы? что тебе можно посоветовать если ты ни кусок кода ни код полностью не выложил. Как сделать - добавить в список комманд эту комманду и определить для нее соотв. функцию. есть сервис чтото наподобие [номер_телефорна]@smsmsg.ru отправляеш как на мыло и приходит смс. актуально для мегафона, для других ОпСосов другие гейты какието... можно просто на пхп mail()...
Ridikh, пиши запрос, окрывай сокет и пихай запрос когда придет комманда !sms. Конструкцию case ты думаю знаешь как юзать. незнаешь - гугли. про запрос - учи протокол http. функции для работы с сокетами, здесь необходимые - Fscockopen(), fputs(),fclose(). Rread(), если хочешь получить подтверждение от сервера (анализируй ответы от него) да, и параметры идущие с коммандой получай как по примеру (разделяешь по " ") ps запрос можеш перехватить прогой InetCrack...
Открываеш сокет, и отправляеш ему: Code: POST http://sms.smssender.org/index.php HTTP/1.0 User-Agent: Opera/9.23 (Windows NT 5.1; U; ru) Host: sms.smssender.org Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1 Accept-Language: uk-UA,uk;q=0.9,en;q=0.8 Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1 Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0 Referer: http://sms.smssender.org/ Proxy-Connection: close Content-Length: 100 Content-Type: application/x-www-form-urlencoded act=send&sms_phone=+xxxxxxxxxxxx&sms_mess=TEXT&sms_trans=on&sms_break=on&sms_user=USER&sms_password=PASSWORD USER,PASSWORD - логин и пароль твоего пользователя на сайте xxxxxxxxxxxxx - телефонный номер получателя TEXT - текст сообщения
PHP: <? $al="act=send&sms_phone=+xxxxxxxxxxxx&sms_mess=TEXT&sms_trans=on&sms_break=on&sms_user=USER&sms_password=PASSWORD"; httpSocketConnection('sms.smssender.org', 'POST', 'http://sms.smssender.org/index.php', $al); function httpSocketConnection($host, $method, $path, $data) { $method = strtoupper($method); $filePointer = @fsockopen($host, 80, $errorNumber, $errorString); if (!$filePointer) { exit('Failed opening http socket connection: '.$errorString.' ('.$errorNumber.')<br/>\n'); return false; } $requestHeader = $method." ".$path." HTTP/1.1\r\n"; $requestHeader.= "Host: ".$host."\r\n"; $requestHeader.= "User-Agent: ".$browsers[rand(0,4)]."\r\n"; $requestHeader.= "Content-Type: application/x-www-form-urlencoded\r\n"; if ($method == "POST") { $requestHeader.= "Content-Length: ".strlen($data)."\r\n"; } $requestHeader.= "Connection: close\r\n\r\n"; if ($method == "POST") { $requestHeader.= $data; } fwrite($filePointer, $requestHeader); $responseHeader = ''; $responseContent = ''; do { $responseHeader.= fread($filePointer, 1); } while (!preg_match('/\\r\\n\\r\\n$/', $responseHeader)); if (!strstr($responseHeader, "Transfer-Encoding: chunked")) { while (!feof($filePointer)) { $responseContent.= fgets($filePointer, 128); preg_match_all( '/<td></td>(.*)<td><\/td>/iUs' , $responseContent, $responseContent); } } else { while ($chunk_length = hexdec(fgets($filePointer))) { $responseContentChunk = ''; //logEventToTextFile('debug', $chunk_length); $read_length = 0; while ($read_length < $chunk_length) { $responseContentChunk .= fread($filePointer, $chunk_length - $read_length); $read_length = strlen($responseContentChunk); } $responseContent.= $responseContentChunk; fgets($filePointer); preg_match_all( '/<td></td>(.*)<td><\/td>/iUs' , $filePointer, $filePointer); } } //logEventToTextFile('debug', $responseContent); return chop($responseContent); }
Можно =) PHP: <? $text = '!sms +79201031775 Привет кроссавчег!'; preg_match('|^!sms\s+([^\s]+)\s+(.*)$|is', $text, $sms); $number = $sms[1]; $text = $sms[2]; ?>
так а как все это в бота запихать? непонтяно что писать Code: case '!about': $icq-sendMessage($msg['from'], $about); break; case '!help': $icq-sendMessage($msg['from'], $help); break; case '!news': $icq-sendMessage($msg['from'], $news); break; case '!sms $phone $text': $icq-sendMessage($msg['from'], $phone); break;