API Контур Диадок
Модератор: Модераторы
- alexs
- долгожитель
- Сообщения: 4066
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
API Контур Диадок
Кто либо сталкивался с этим? Есть ли готовая реализация под FPC?
Или как всегда - самому ковырять?
Или как всегда - самому ковырять?
У них есть sdk, можно попробовать взять либу для c++, или работать с помощью COM-сервисов.
Я тоже заинтересован в этом вопросе, сейчас пилим для php интеграцию.
Я тоже заинтересован в этом вопросе, сейчас пилим для php интеграцию.
- alexs
- долгожитель
- Сообщения: 4066
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
Хочется безшовную интеграцию с моим софтом.
COM - не годится, ибо не кросплатформено
c++ - с FPC не слинкуешь нормально.
Быстро просмотрел их документацию - не нашёл нормального описания протокола на уровне HTTP
Все идёт уже на уровне COM.
Не поделишься базовыми примерами?
COM - не годится, ибо не кросплатформено
c++ - с FPC не слинкуешь нормально.
Быстро просмотрел их документацию - не нашёл нормального описания протокола на уровне HTTP
Все идёт уже на уровне COM.
Не поделишься базовыми примерами?
- serbod
- постоялец
- Сообщения: 449
- Зарегистрирован: 16.09.2016 10:03:02
- Откуда: Минск
- Контактная информация:
1. Согласен, с этим проблема. Нужно делать "прокладку", переводящую классы в функции. И она же может помочь с кроссплатформенностью. Есть статья на эту тему: http://rvelthuis.de/articles/articles-cppobjs.html
alexs писал(а):Быстро просмотрел их документацию - не нашёл нормального описания протокола на уровне HTTP
Из любопытства глянул документацию. Вся их документация - это и есть описание протокола на уровне HTTP (точно такая-же у яндекса и т.п.). В каждом разделе их документации (помимо 90% воды), есть пример обращения GET или POST. В сущности, чтобы всё быстро понять, Вам нужно оттуда брать только названия переменных и далее отправлять их синапсом или подобным методом, на указанные в доке URL, но уже с присвоенными значениями. Вот например: http://api-docs.diadoc.ru/ru/latest/how ... voice.html
Довольно примитивная АПИ система передачи данных - она везде одинаковая, разница лишь в названии переменных. Технически можете попробовать слать им GET команды прямо из строки браузера вот сюда: http://diadoc-api.kontur.ru и посмотреть их ответы там-же. Только вначале нужно получить пароль/логин/ключ и т.п. см. здесь: http://api-docs.diadoc.ru/ru/latest/Authorization.html
У них на С++ написана адаптированная версия, типа нашего синапса, но уже с готовыми функциями, типа "отправить отчёт", но в итоге, эта функция, шлёт всё те-же самые переменные что и GET или POST, просто в их С++ версии, уже "автоматом" идёт подключение, получение и вставка ключа с паролем.
Тобишь берёте нужный Вам документ в их АПИ, и вставляете все переменные из этого документа и затем шлёте их синапсом им на сервер (вместе с ключами полученными при авторизации) и забейте на всё остальное С++ подобное ..., т.к. прямым HTTP - Вам будет и быстрее и надёжнее.
Вот например, пример ответа их сервера: https://diadoc-api.kontur.ru/Authenticate, о том что они готовы принять POST переменные.
Или вот например, так ругается их сервер, на требование выдать информацию об организации, если не передали POST ключ этой самой организации: https://diadoc-api.kontur.ru/GetMyOrganizations.
alexs писал(а):Не поделишься базовыми примерами?
https://github.com/diadoc/diadocapi-doc ... ocs/source - вот тут пошарься, информации в избытке.
Берешь indy или Synapse в помощь и вперед))
- alexs
- долгожитель
- Сообщения: 4066
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
Если кому интересно
Работы по API в целом идёт к завершению
Перевёл все прототипы объектов на паскаль
Минимально реализовал объект для взаимодействия с DIADOC - данные по входящим документам и сообщениям, по контрагентам читаются нормально. Для меня это есть минимально необходимое. В дальнейшем будет дописываться.
Попутно реализовал возможность работы с данными в формате Protobuf и перевод этих данных в объекты паскаля. Сами объекты пока создаются руками на основе прототипов.
В дальнейшем, если прижмёт, можно реализовать препроцессор из файлов proto в pas.
вси исходники и небольшая демка находятся по адресу: https://svn.shamangrad.ru/diadocsdk_fpc
Добавлено спустя 23 часа 44 минуты 39 секунд:
Добавил возможность сохранения объектов в Protobuf
Работы по API в целом идёт к завершению
Перевёл все прототипы объектов на паскаль
Минимально реализовал объект для взаимодействия с DIADOC - данные по входящим документам и сообщениям, по контрагентам читаются нормально. Для меня это есть минимально необходимое. В дальнейшем будет дописываться.
Попутно реализовал возможность работы с данными в формате Protobuf и перевод этих данных в объекты паскаля. Сами объекты пока создаются руками на основе прототипов.
В дальнейшем, если прижмёт, можно реализовать препроцессор из файлов proto в pas.
вси исходники и небольшая демка находятся по адресу: https://svn.shamangrad.ru/diadocsdk_fpc
Добавлено спустя 23 часа 44 минуты 39 секунд:
Добавил возможность сохранения объектов в Protobuf
Алексей, кинь прямую ссылку на репу svn, если нетрудно
- alexs
- долгожитель
- Сообщения: 4066
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
Перенёс проект на github
https://github.com/diadoc/diadocsdk-cpp
https://github.com/diadoc/diadocsdk-cpp
