Перейти к публикации

Lastonius

Пользователи
  • Публикации

    3
  • Зарегистрирован

  • Посещение

Все публикации пользователя Lastonius

  1. К сожалению, не смогу помочь, т.к. я не пользуюсь услугой АТС и не знаю, как выглядит статистика. Думаю, если у вас не получается самостоятельно справиться, то лучше обратиться к программистом. Задача достаточно простая. Извините за долгий ответ, с форума уведомления не приходят на почту.
  2. Вот код на php. Проверьте работоспособность просто полностью скопировав у себя в какой-нибудь index.php и заполните учетными данными от сайта задарма. На выходе код дает такой ответ: На счету SIP: $50.0000 Статус #12345 - online Удачи! <? //если возникают ошибки при запуске скрипта, надо смотреть, чего не хватает в php.ini. Возможно нужно будет доподключить библиотеки. Скрипт 100% рабочий. $siplogin='mail@mail.com'; //сюда вставьте логин для сайта zadarma $sippassword='mypassword'; //сюда пароль для сайта $sip_id='#12345'; //здесь номер замените на свой номер сип внутренний, т.к. по нему идет парсинг онлайн или оффлайн станция АТС (берет со страницы Задарма https://ss.zadarma.com/mysip/). function login($url,$login,$pass){ $ch = curl_init(); if(strtolower((substr($url,0,5))=='https')) { // если соединяемся с https curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); } curl_setopt($ch, CURLOPT_URL, $url); // откуда пришли на эту страницу curl_setopt($ch, CURLOPT_REFERER, 'https://ss.zadarma.com/mysip/'); // cURL будет выводить подробные сообщения о всех производимых действиях curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_POSTFIELDS,"email=".$login."&p=/mysip/&password=".$pass); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (Windows; U; Windows NT 5.0; En; rv:1.8.0.2) Gecko/20070306 Firefox/1.0.0.4"); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //сохранять полученные COOKIE в файл curl_setopt($ch, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt'); $result=curl_exec($ch); //print $result; // Убеждаемся что произошло перенаправление после авторизации //if(strpos($result,"Location: home.php")===false) die('Login incorrect'); curl_close($ch); return $result; } // чтение страницы после авторизации function Read($url){ $ch = curl_init(); if(strtolower((substr($url,0,5))=='https')) { // если соединяемся с https curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); } curl_setopt($ch, CURLOPT_URL, $url); // откуда пришли на эту страницу curl_setopt($ch, CURLOPT_REFERER, $url); //запрещаем делать запрос с помощью POST и соответственно разрешаем с помощью GET curl_setopt($ch, CURLOPT_POST, 0); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); //отсылаем серверу COOKIE полученные от него при авторизации curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt'); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (Windows; U; Windows NT 5.0; En; rv:1.8.0.2) Gecko/20070306 Firefox/1.0.0.4"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($ch); curl_close($ch); return $result; } login('https://ss.zadarma.com/auth/login/',$siplogin,$sippassword); $balance=Read('https://ss.zadarma.com/mysip/'); $status=$balance; $len=stripos($balance, '<', stripos($balance, '/pay/">$'))-stripos($balance, '/pay/">$'); $balance=substr($balance, stripos($balance, '/pay/">$')+7, $len-7); //print $len; $len=stripos($status, '<', stripos($status, '"'.$sip_id.'">'))-stripos($status, '"'.$sip_id.'">'); $status=substr($status, stripos($status, '"'.$sip_id.'">')+9, $len-9); if ($balance[0]<>'$') print 'Не удалось получить данные'; else { print 'На счету SIP: <b>'.$balance.'</b><br>'; if (stripos($status, 'online')>0) print '<div style="font-family:Tahoma; font-size:10px; color:#00AA00;"><b>Статус '.$sip_id.' - online</b>'; if (stripos($status, 'offline')>0) print '<div style="font-family:Tahoma; font-size:10px; color:#FF0000;"><b>Статус '.$sip_id.' - OFFLINE</b>'; if ((stripos($status, 'online')==0) && (stripos($status, 'offline')==0)) '<div style="font-family:Tahoma; font-size:10px; color:#FF0000;"><b>Статус неопределен!</b>'; } ?>
  3. Добрый день. Раз вы уже пошли по пути своего API, то было бы отлично еще и видеть несколько полезных функций. Сегодня мы парсим страничку из личного кабинета, чтобы смотреть остаток на счете и кто из абонентов он-лайн или офф-лайн. Например, https://ss.zadarma.com/getBalance?secret=MySecretKey - возвращает просто строку 100.00$ https://ss.zadarma.com/getStatus?secret=MyS...ey&ID=12345 - возвращает просто "1" для онлайн, "2" для оффлайн и "0" - ошибка, нет в моем кабинете такого ID. Любые вариации на эту тему были бы полезны. А пока мы используем свой виджет в интранет-портале, который надо дописывать, когда вы что-то меняете в личном кабинете (редко, но всё же). Заранее спасибо!
×
×
  • Создать...