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

API для просмотра баланса и состояния подключений


Lastonius

Рекомендованные сообщения

Добрый день.

 

Раз вы уже пошли по пути своего API, то было бы отлично еще и видеть несколько полезных функций.

Сегодня мы парсим страничку из личного кабинета, чтобы смотреть остаток на счете и кто из абонентов он-лайн или офф-лайн.

 

Например,

https://ss.zadarma.com/getBalance?secret=MySecretKey - возвращает просто строку 100.00$

https://ss.zadarma.com/getStatus?secret=MyS...ey&ID=12345 - возвращает просто "1" для онлайн, "2" для оффлайн и "0" - ошибка, нет в моем кабинете такого ID.

 

Любые вариации на эту тему были бы полезны.

 

А пока мы используем свой виджет в интранет-портале, который надо дописывать, когда вы что-то меняете в личном кабинете (редко, но всё же).

post-3723-1354712053_thumb.png

 

 

Заранее спасибо!

Ссылка на комментарий
  • 3 месяца спустя...

Не могу оставить ссылку на форуме т.к. не видели саму эту программу на тему безопасности.

 

Пока ссылку удаляю, просьба обратится разработчику ко мне, протестируем ПО и тогда сможем выложить ссылку.

Ссылка на комментарий

установил для нескольких аккаунтов. как на счет конфиденциальности данных? как часто происходит обновление баланса?

Обновление раз в 30 секунд

Конфиденциальность - гаджет это открытый javascript код, так что любой желающий может проверить на то что логины и пароли никуда не уходят

Все сохраняется локально как хранит любой гаджет к примеру проверка почты gmail.com

Касаемо нескольких аккаунтов - не рассчитывал на такое использование, исправил. Как только администрация разрешит ПО - выложу ссылку.

Ссылка на комментарий
  • 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>';
}
?>
Ссылка на комментарий
  • 1 месяц спустя...

Вот код на 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);

 

Подскажите пожалуйста, как можно с помощью вашего скрипта пропарсить страицу статистики АТС https://ss.zadarma.com/mypbx/stat

Я попробовал поменять адреса, парсит всё кроме самой таблицы, тег <div id="statistics"> </div> просто пустой, именно в этом контейнере должна находится таблица которую и необходимо вытащить

Ссылка на комментарий
  • 3 недели спустя...

Подскажите пожалуйста, как можно с помощью вашего скрипта пропарсить страицу статистики АТС https://ss.zadarma.com/mypbx/stat

Я попробовал поменять адреса, парсит всё кроме самой таблицы, тег <div id="statistics"> </div> просто пустой, именно в этом контейнере должна находится таблица которую и необходимо вытащить

К сожалению, не смогу помочь, т.к. я не пользуюсь услугой АТС и не знаю, как выглядит статистика.

 

Думаю, если у вас не получается самостоятельно справиться, то лучше обратиться к программистом. Задача достаточно простая.

 

Извините за долгий ответ, с форума уведомления не приходят на почту.

Ссылка на комментарий
  • 1 год спустя...

Вот код на php. Проверьте работоспособность просто полностью скопировав у себя в какой-нибудь index.php и заполните учетными данными от сайта задарма.

 

На выходе код дает такой ответ:

На счету SIP: $50.0000

Статус #12345 - online

Работало некоторое время, но теперь поломалось и не проходит авторизацию.

Присоединяюсь к просьбе сделать официальный API для получения баланса.

Ссылка на комментарий
  • 1 месяц спустя...

Для собственных нужд написал API для получения статуса и баланса. Работает парсингом страниц сайта zadarma. Кеширует результат на 5 минут. Пользуйтесь, кому нужно: https://htmlweb.ru/other/api_sip_zadarma.php

Ссылка на комментарий
  • 2 недели спустя...

Для собственных нужд написал API для получения статуса и баланса. Работает парсингом страниц сайта zadarma. Кеширует результат на 5 минут. Пользуйтесь, кому нужно: https://htmlweb.ru/other/api_sip_zadarma.php

Чтобы не изобретать велосипед... очень прошу поделиться исходниками скрипта для получения баланса задармы. Если не сложно, то на эл.почту talk[dot]37[dog]gmail.com

Моей благодарности не будет предела.

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

 

И так же присоединяюсь к пожеланию видеть API с получением баланса. Если считается это не секьюрно, то дайте решить самим пользователям. Например, у мультифона такая возможность есть, но включается отдельной опцией в личном кабинете (по умолчанию выключено).

Ссылка на комментарий
  • 1 месяц спустя...

Подправил немного код опубликованный выше, парсит только баланс.

 

<?php

$siplogin='xxxxxx'; //сюда вставьте логин для сайта zadarma
$sippassword='xxxxxxx'; //сюда пароль для сайта

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/auth/');
   // 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."&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;

   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);  
	 
   //print $result; 
	  
   curl_close($ch);
   return $result;
}

Login('https://ss.zadarma.com/auth/',$siplogin,$sippassword);
$balance = Read('https://ss.zadarma.com/mysip/');

$start_position = stripos($balance, '<span class="balance"><a style="color:#000;" href="/pay/">');
$len_start = strlen('<span class="balance"><a style="color:#000;" href="/pay/">');
$stop_position  = stripos($balance, ' руб</a></span>');
$balance = substr($balance, $start_position + $len_start, $stop_position - $start_position - $len_start);

print $balance;
Ссылка на комментарий
  • 1 месяц спустя...

Скриптами с личного кабинета парсить можно.. и это работает.

До той поры пока не будет несколько неудачных попыток... и включается каптча на IP адрес.

А попытки случаются.. в сервисе, где пользователи сами вводят свой логин и пароль и ошибаются...

когда же API будет?

Ссылка на комментарий
  • 2 недели спустя...

Для собственных нужд написал API для получения статуса и баланса. Работает парсингом страниц сайта zadarma. Кеширует результат на 5 минут. Пользуйтесь, кому нужно: https://htmlweb.ru/other/api_sip_zadarma.php

Неплохо вы паролей можете набрать.. :blink:
Ссылка на комментарий
  • 3 месяца спустя...

Проект задарма запустил интерфейс API

 

С сегодняшнего дня пользователи Zadarma могут работать с системой как через личный кабинет, так и через интерфейс API. Интерфейс API помогает интегрировать сервис Zadarma в собственные сайты и приложения, а также стыковать с любыми CRM-системами и программами для коллцентров. В API доступны все основные функции личного кабинета, и даже некоторые ранее недоступные функции (например предиктивный набор номера, уведомление внешнего сервера о входящем звонке). Описание API доступно на сайте: https://zadarma.com/ru/support/api/

 

Доступна первая версия API, в будущем планируется расширение его функционала.

Ссылка на комментарий

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
×
  • Создать...