1 (edited by agatlogic101 2019-11-04 00:06:42)

Topic: подключение к АТС

1)Есть ли возможность как то объединяться с виртуальной АТС? Там есть пример кода для Python, как она генерирует запрос по API через GET. Сложно ли это?
Ссылка на API
https://zadarma.com/ru/support/api/#
ССылка на код генерации запроса
https://github.com/zadarma/user-api-py- … rma/api.py
2)Правильно ли я понял, что скрипт от php, который там представлен, то он ставится уже прямиком на сервер, и получается что допустим если кто то сделал мне звонок, то API посылает на мой MySQL запрос на создание допустим записи о новом звонке и я уже в MVDB в таблицах его уже могу увидеть, и перезвонить к примеру или как то пересохранить информацию о нём

2 (edited by sibprogsistem 2019-11-04 10:29:51)

Re: подключение к АТС

лучший метод это использование асинхронности

url:='https://ya.ru'; // веб адрес, можно просто изменить на нужный Вам или получать его любвм другим способом
    http:=createoleobject('WinHttp.WinHttpRequest.5.1'); // создаем leobject просто не трогайте (это всегда нужно)
    http.open('GET', url, true); {открываем одрес для запроса где (тип запроса GET или POST, адрес запроса, асинхронность False или True)}
    {SetRequestHeader - Это указание для сервера - как обрабатывать (раскодировать) пришедший запрос}
    http.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    http.send(); // передает параметры запроса..
    Timer.enabled:=True; //вызывает процедуру отчета таймаута..

на в FAQ есть примеры использования
GET - запрос используется для передачи незащищенных парраметров, в данном случае http.send(); можно оставить пустым
а сами парраметры передаем в самом адресе
https://сайт/страница?pass=1234&login=rer   
после адреса указываете ? после этого указываете сами парраметры чере &

POST - использыуется для передачи защищенных парраметров, в данном случае замо тело запроса нужно поместить в  http.send();    выглядит так http.send(' pass=1234&login=rer ');

думаю лучший пример всетаки находиться тут
http://myvisualdatabase.com/forum/viewtopic.php?id=5433
в нем реализованы и запросы и обработка ответов
 
 
в Вашем случае программа должна на прямую запрашивать данные хотя можно и через php получится костыль, но если Вам так будет удобнее то ничего страшного

3 (edited by agatlogic101 2019-11-04 11:30:24)

Re: подключение к АТС

Да, только там как я понял нужно еще какую то шифрацию делать в md5 и sha1, что бы запрос составить. Там есть инструкцию описания

zadarma wrote:

Подпись составляется по следующему алгоритму:

массив из передаваемых параметров (GET, POST, PUT, DELETE) сортируется по названию ключа по алфавиту;
из полученного массива формируется строка запроса (например, функция http_build_query в PHP), пример "from=DATEFROM&to=DATETO…";
и далее - соединяется по формуле: строка = имя_метода строка_запроса md5( строка_запроса ), где "имя_метода" - строка запроса, начиная от домена (с указанием версии АПИ), до начала перечисления параметров, например - '/v1/sip/'
полученная строка хешируется по алгоритму sha1 с секретным ключом пользователя: хеш = hash( строка, секретный_ключ )
и далее хеш кодируется в base64 подпись = base64_encode( хеш )

и я запутался как его составить. Ну или его уже на языке Python уже описали как сделать по ссылке ранее предоставленной. Но я не знаю как это применить в mvdb
Естественоо ключ или секрет я получил в своём личном кабинете, но как теперь это применить...

4 (edited by sibprogsistem 2019-11-04 15:08:31)

Re: подключение к АТС

http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=5946&download=0

StrToMD5();
s:=StrToMD5('любое текстовое значение или переменная string');

Post's attachments

Attachment icon Безымянный.png 17.89 kb, 103 downloads since 2019-11-04 

Re: подключение к АТС

zadarma wrote:

полученная строка хешируется по алгоритму sha1 с секретным ключом пользователя: хеш = hash( строка, секретный_ключ )
и далее хеш кодируется в base64 подпись = base64_encode( хеш )

а следующий пункт тогда как? sha1 я так понимаю уже нету?

Re: подключение к АТС

SHA1 вроди как не поддерживается...  Другие сервисы вертуальных АТС смотрели?

Re: подключение к АТС

Скачайте пожалуйста последнюю бета версию, добавил функцию StrToSHA1, а также для работы с base64, StrToBase64 и Base64ToStr
https://www.dropbox.com/s/6079b1qerk86k … a.zip?dl=0

Dmitry.

Re: подключение к АТС

шикарно

Re: подключение к АТС

zadarma wrote:

Подпись составляется по следующему алгоритму:
массив из передаваемых параметров (GET, POST, PUT, DELETE) сортируется по названию ключа по алфавиту;
из полученного массива формируется строка запроса (например, функция http_build_query в PHP), пример "from=DATEFROM&to=DATETO…";
и далее - соединяется по формуле: строка = имя_метода строка_запроса md5( строка_запроса ), где "имя_метода" - строка запроса, начиная от домена (с указанием версии АПИ), до начала перечисления параметров, например - '/v1/sip/'
полученная строка хешируется по алгоритму sha1 с секретным ключом пользователя: хеш = hash( строка, секретный_ключ )
и далее хеш кодируется в base64 подпись = base64_encode( хеш )

теперь осталось понять что тут написано...

10 (edited by sibprogsistem 2019-11-06 15:38:27)

Re: подключение к АТС

http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=5951&download=0
на этой странице указаны все методы
https://zadarma.com/ru/support/api/#
 
Ссылка на АПИ: https://api.zadarma.com
Версия АПИ: v1
Финальная ссылка на метод: https://api.zadarma.com/v1/METHOD/

если я не ошибся то выглядеть GET запрос будет так https://api.zadarma.com/v1/info/price/n … 9658700517
 
использовать нужно либо GET либо POST запросы..

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

на сколько я понял шифровать нужно сам запрос но не парраметры

Post's attachments

Attachment icon Безымянный.png 29.86 kb, 104 downloads since 2019-11-06