Ответ
Проверка баланса на ФО с оповещением по SMS (oron) Опции темы
Старый 09.06.2012, 12:22
  #1
iksod
 
Регистрация: 26.05.2012
Сообщений: 7

Проверка баланса на ФО с оповещением по SMS (oron)
Здравствуйте, решил поучавствовать в конкурсе, и написал небольшую статью о скрипте, который проверяет баланс на ФО (на примере oron.com) и отправляет SMS в случае его изменения.

Скрипт написан на языке PHP без использования базы данных (работает с файлом).

Для того, чтобы вы могли отправлять себе SMS необходимо зарегистрироваться на сайте littleSMS (реф, нереф). СМС по России стоит 0.35 рубля, по СНГ 0.9 рубля.

Приведу пояснения для скрипта:

Подключаем 2 библиотеки:
phpQuery - библиотека для парсинга сайтов, синтаксис схож с jQuery. Достаточна быстра.
littleSMS - библиотека для работы с сервисом отсылки SMS.


<?php
require_once(dirname(__FILE__).'/phpQuery/phpQuery/phpQuery.php');
require_once(dirname(__FILE__).'/littleSms/LittleSMS.class.php');
Код, который с помощью CURL логинится на сайта oron.com и парсит баланс, в случае его изменения отправляет СМС.

$login = 'ваш логин';
$password = 'ваш пароль';

$result = ex_curl("http://oron.com/login", false, false, null, "login=" . $login . "&password=" . $password . "&op=login&redirect=&rand=", NULL);

$document = phpQuery::newDocument($result);
$balance = $document->find('div#optidiv table a:first')->html();

$handle = fopen("oron.txt", "a+");

while (!feof($handle)) {
    $oldBalance = fgets($handle, 4096);
}

fclose($handle);

if ($balance && $balance != $oldBalance)
{
    $handle = fopen("oron.txt", "w");
    fwrite($handle, $balance);
    fclose($handle);

    $sms = new LittleSMS('ваш email, который вы указали на little sms', 'api-key');
    $sms->sendSMS('ваш телефон', $balance);
}
Функция для работы с CURL

function ex_curl($url,$get=true,$headers=false,$cookie=NULL,$fields=NULL,$referrer=NULL){
    $ch=curl_init($url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
    curl_setopt($ch,CURLOPT_ENCODING,'gzip, deflate');
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2) Gecko/20100115 Firefox/3.6');
    curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
    curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__)."/coo.txt");
    curl_setopt($ch, CURLOPT_COOKIEFILE,dirname(__FILE__)."/coo.txt");

    if(!$get){
        curl_setopt($ch,CURLOPT_POST,1);
        curl_setopt($ch,CURLOPT_POSTFIELDS,$fields);
    }

    if($cookie!='') {
        curl_setopt($ch,CURLOPT_COOKIE,$cookie);
        curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
    }
    if($headers) curl_setopt($ch,CURLOPT_HEADER,1);
    if($referrer!='') curl_setopt($ch,CURLOPT_REFERER,$referrer);
    curl_setopt($ch, CURLINFO_HEADER_OUT, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
    curl_setopt($ch, CURLINFO_HEADER_OUT, true);
    $rt = curl_exec($ch);
    curl_close($ch);
    return $rt;
}
Код из статьи выложил тут check-oron.rar (266.6 Kb)

Далее выполнение скрипта закидываем в cron (linux) или пишем .bat файл и отправляем его в планировщик, если будет необходимость напишу об этом подробнее.
Нравится 0   Не нравится 0
Пожаловаться на это сообщение 0  
Ответить с цитированием
Старый 09.06.2012, 18:55
  #2
Moe
 
Регистрация: 02.07.2011
Сообщений: 219

можно и бесплатно.
например, у мегафона есть бесплатный сервис "'электронная почта через смс".
http://dv.megafon.ru/services/internet/mail/email2sms.html#receiving
подключаете услугу, регистрируете мыло где-нибудь, настраиваете переадресацию на мегафоновское мыло, скриптом парсите стату и посылаете на почту.
Нравится 0   Не нравится 0
Пожаловаться на это сообщение 0  
Ответить с цитированием
Старый 11.06.2012, 01:05
  #3
gimaler
 
Аватар для gimaler
Регистрация: 15.01.2012
Сообщений: 28

за старание плюсанул сам знаю как оно кодинг
Нравится 0   Не нравится 0
Пожаловаться на это сообщение 0  
Ответить с цитированием
Старый 12.06.2012, 08:56
  #4
iksod
 
Регистрация: 26.05.2012
Сообщений: 7

Немного модифицировал скрипт, теперь отсылает и файлик с которого была последня продажа и сумму продажи.

if ($balance && $balance != $oldBalance)
{
    $handle = fopen("oron.txt", "w");
    fwrite($handle, $balance);
    fclose($handle);
    $stats = phpQuery::newDocument(ex_curl("http://oron.com/?op=my_stats", true, false, null, null, NULL));
    $sale_href = $stats->find('table.tbl2 tr:last')->prev()->find('td:first a:first')->attr('href');

    $sales = phpQuery::newDocument(ex_curl("http://oron.com/" . $sale_href, true, false, null, null, NULL));
    $sale_file = $sales->find('table.tbl2 tr:first')->next()->find('td:last')->prev()->find('a')->html();
    $sale_amount = $sales->find('table.tbl2 tr:first')->next()->find('td:last')->prev()->prev()->html();
    $sms = new LittleSMS('ваш email, который вы указали на little sms', 'api-key');
    $sms->sendSMS('ваш телефон', $balance . ' ' . $sale_amount . ' ' . $sale_file);
}
$sale_file - файл с которого была последняя продажа.
$sale_amount - сумма последней продажи.
Нравится 0   Не нравится 0
Пожаловаться на это сообщение 0  
Ответить с цитированием
Старый 14.06.2012, 01:46
  #5
Kamatozzza
 
Аватар для Kamatozzza
Регистрация: 29.03.2012
Сообщений: 196

Я бы не стал юзать такой скрипт, телефоны в СНГ такая штука, что их прослушивают направо и налево Еще не хватало чтобы статистика попадала к пацанам в шлемаках
Нравится 0   Не нравится 0
Пожаловаться на это сообщение 0  
Ответить с цитированием
Старый 14.06.2012, 02:06
  #6
iksod
 
Регистрация: 26.05.2012
Сообщений: 7

Сообщение от Kamatozzza Посмотреть сообщение
Я бы не стал юзать такой скрипт, телефоны в СНГ такая штука, что их прослушивают направо и налево Еще не хватало чтобы статистика попадала к пацанам в шлемаках
Необязательно присылать себе сумму, если есть страх по этому поводу. Можно присылать смс "сходи в магазин", "вынеси мусор", мона массив сделать непаливных дел

На днях появилась идея создания класса для рассылки бесплатных смсок с помощью нотификатора Google Calendar. Если люди будут пользоваться и темка будет популярной то когда допишу - выложу тут
Нравится 0   Не нравится 0
Пожаловаться на это сообщение 0  
Ответить с цитированием

Ответ
 
 

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для проверки баланса на ФО piskind Файлообмен 20 04.05.2012 23:49

Метки
баланс, проверка баланса, смс оповещения о продажах


Здесь присутствуют: 1 (пользователей: 0, гостей: 1)
 

Быстрый переход


Текущее время: 10:50. Часовой пояс GMT +3.