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

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

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

Добрый день.

 

Раз вы уже пошли по пути своего 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

 

 

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

Поделиться сообщением


Ссылка на сообщение

Принимаем все пожеланию по поводу API, при будущей разработке они будут учтены.

Поделиться сообщением


Ссылка на сообщение

пока ждем API сделал на скорую руку гаджет для Windows 7

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

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

 

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

Поделиться сообщением


Ссылка на сообщение

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение

Всем привет!

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

ну или может кто кодом поделится, чтобы входить - смотреть

чтобы самому велосипед не изобретать :)

спасибо

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

спасибо

 

я уже себе написал сам, но может кому и пригодится :)

Поделиться сообщением


Ссылка на сообщение

Вот код на 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> просто пустой, именно в этом контейнере должна находится таблица которую и необходимо вытащить

Поделиться сообщением


Ссылка на сообщение

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

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

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение

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

 

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

На счету SIP: $50.0000

Статус #12345 - online

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

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

Поделиться сообщением


Ссылка на сообщение

О просьбе помним и о обещании сделать также.

API будет, но сроков ни по каким новым функциям я называть не могу.

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

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

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

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

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

 

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

Поделиться сообщением


Ссылка на сообщение

Как я ранее и писал API все еще в разработке, как только будет мы обязательно сообщим.

Поделиться сообщением


Ссылка на сообщение

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

Не держите свои обещания.

Поделиться сообщением


Ссылка на сообщение

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

 

<?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;

Поделиться сообщением


Ссылка на сообщение

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

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

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

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

Поделиться сообщением


Ссылка на сообщение

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

Неплохо вы паролей можете набрать.. :blink:

Поделиться сообщением


Ссылка на сообщение

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение

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

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

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

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

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

Войти

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

Войти сейчас

×
×
  • Создать...