Служба поддержки DaData.ru
Если чего-то не хватает, или вы столкнулись с проблемой — оставьте сообщение, и мы ответим в течение 24 часов. Работаем с понедельника по пятницу, с 10 до 19 по Москве.
API-клиент на Go
В примерах вызова API у вас отсутствует набирающий популярность Golang. Мы подготовили для проекта библиотеку (API стандартизации) и выложили первый релиз в публичный доступ - https://github.com/probkiizokna/go-dadata. Будем рады, если библиотека пригодится не только нам :)
Сейчас для тестов сделаны заглушки, чтобы не нести дополнительных затрат на оплату сервиса. Если вы готовы предоставить или самостоятельно разместить на travis-ci.com шифрованные ключи для тестирования, то тесты прогонялись бы прямо в системе на реальных данных. На всякий случай, описание и как разместить шифрованные ключи здесь - http://docs.travis-ci.com/user/encryption-keys/. С защитой там всё хорошо, ключи шифруются утилитой travis-ci.com и будут находиться в шифрованном виде в репозитории библиотеки. Расшифровать ключи и прогнать тесты может только travis-ci.com.
Надеюсь, вас заинтересует наше предложение :)
Вопросы по fias_id в подсказках
1. Почему в случае если сервис возвращает больше одной подсказки, то fias_id не заполняется? Если возвращается только 1 подсказка, то все работает как надо.
2. Не понятно к какой из таблиц (ADDROBJ, HOUSE и т.д.) относится возвращаемый fias_id. Есть ли возможность как-нибудь это узнать?
Примеры к вопросам можно посмотреть тут http://jsfiddle.net/roman450/o6pp8j0h/
С уважением, Роман.
{"query": "г Москва, ул Щукинская, д 2", "count": 1}Дадата не поддерживает вызов стандартизации из JS. Иначе злоумышленник мог бы похитить секретный ключ и использовать стандартизацию за ваш счет.
IP адреса Беларуси
ваш сервис на бесплатном тарифе может определять по IP города пользователей из Беларуси?
невозможно сериализовать ответ FindParty с разобранными организациями
есть необходимость сериализовать сведения об органиазции метода FindParty в json или xml.
newtonsoft валится с ошибокой, второй вариант json не работает
var result = await DaDataClient.FindParty("7707083893");
string json = JsonSerializer.Serialize(result);
в xml тоже сереализовать нельзя.
как быть?
Насколько понимаю, причина проблемы в том, что сериализатор не умеет работать с интерфейсом IList:
Cannot serialize member Dadata.Model.SuggestResponse.suggestions of type System.Collections.Generic.IList because it is an interface.
Соответственно, решение проблемы — преобразовать интерфейс в конкретный тип. Например, так:
var token = Environment.GetEnvironmentVariable("DADATA_API_KEY"); api = new SuggestClientAsync(token); var response = await api.FindParty("7707083893"); var suggestions = new List<Suggestion<Party>>(response.suggestions); var json = JsonSerializer.Serialize(suggestions);
Неправильное поведение jQuery-плагина после клика за пределами окна
Добрый день. Если jQuery плагин находится в состоянии открытого списка подсказок, и пользователь делает клик вне текущего окна браузера, подсказки исчезают (это нормально).
Но, при последующем клике уже внутри окна, на том месте где до этого были подсказки, не смотря на то, что подсказки не отображаются, будет активирована (выбрана) та подсказка, которая как бы находится под указателем мыши.
Демонстрация на видео.
explorer_2024-11-25--20-53-07--167.mp4
Проблема затрагивает как адреса, так и организации.
Не удаётся обратиться к Api из сервиса на IIS. Ошибка SSL сертификата.
Добрый день!
Для работы с Вамим Api используем nuget пакет https://github.com/hflabs/dadata-csharp последней версии 23.6.1.
Локально работает, но при хостинге в IIS получаем ошибку.
Подскажите, куда копать или что делать, может сталкивались?
2024-09-25 19:03:07.7331||ERROR|WebApi.Controllers.EmployeeController|One or more errors occurred. (The SSL connection could not be established, see inner exception.) System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception.
---> System.IO.IOException: Received an unexpected EOF or 0 bytes from the transport stream.
at System.Net.Security.SslStream.g__InternalFillHandshakeBufferAsync|187_0[TIOAdapter](TIOAdapter adap, ValueTask`1 task, Int32 minSize)
at System.Net.Security.SslStream.ReceiveBlobAsync[TIOAdapter](TIOAdapter adapter)
at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](TIOAdapter adapter, Boolean receiveFirst, Byte[] reAuthenticationData, Boolean isApm)
at System.Net.Http.ConnectHelper.EstablishSslConnectionAsync(SslClientAuthenticationOptions sslOptions, HttpRequestMessage request, Boolean async, Stream stream, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at System.Net.Http.ConnectHelper.EstablishSslConnectionAsync(SslClientAuthenticationOptions sslOptions, HttpRequestMessage request, Boolean async, Stream stream, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.AddHttp11ConnectionAsync(HttpRequestMessage request)
at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.GetHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
at Dadata.ClientBaseAsync.Execute[T](String method, String entity, IDadataRequest request, CancellationToken cancellationToken)
at Dadata.CleanClientAsync.Clean(IEnumerable`1 structure, IEnumerable`1 data, CancellationToken cancellationToken)
at Dadata.CleanClientAsync.Clean[T](String source, CancellationToken cancellationToken)
at Infrastructure.Implementation.Repositories.CityRepository.GetNewCityInfoAsync(String address) in C:\Users\AKirovich\source\repos\CorpDataService\Infrastructure.Implementation\Repositories\CityRepository.cs:line 118
at Infrastructure.Implementation.Repositories.CityRepository.AddNewCity(LocationCity city) in C:\Users\AKirovich\source\repos\CorpDataService\Infrastructure.Implementation\Repositories\CityRepository.cs:line 54
Добрый день! Не сталкивались.
Препятствий для установки SSL-соединения со стороны «Дадаты» нет. Возможно, IIS не настроен для использования более новых версий TLS (TLS 1.2 или TLS 1.3). Либо IIS работает через прокси-сервер или фаервол, которые и препятствуют установке соединения.
Единственная подсказка
Я уже писал о проблеме, когда при вводе адреса, в случае получения от дадаты списка подсказок из единственного элемента, suggestion просто подставляет этот элемент как выбранный пользователем.
Безусловно, в 99% ситуаций это поведение замечательное.
Но бывает, что подсказки категорически не подходят к вводимой строке пользователя. И учитывая "автовыбор единственной подсказки", это приводит к проблемам:
В этой ситуации Suggestoin просто игнорирует введённое пользователем и подставляет свою подсказку, которая в данной ситуации категорически неприемлема.
Нюанс в том, что наши клиенты при отправке судебных писем должны предоставлять доказательство, что письмо было отправлено именно по тому адресу, который значился в имеющихся документах.
Модуль же Suggestion просто не даёт ввести адрес, вводимы клиентом, подменяя его на совершенно другой.
Вот пример адреса (который нужен клиенту) и единственная подсказка, в которой "1-4" считается лучшим приближением к "4-1". Это же вопиющее несоответствие.
В очередной раз прошу пересмотреть алгоритм выдачи подсказок. Он излишне "оптимистичен" (считая, что "1-4" и "4-1" -- это одно и то же).
Предыдущий тикет на подобную тему:
https://support.dadata.ru/helpdesks/2/tickets/41182-suggestions-stranno-rabotaet
Да, и зачем вы закрываете в приватные принятые и воспроизведённые баги? Информация о них полезна ведь всем пользователям.
гражданство ИП, КФХ и ЮЛ
Здравствуйте
в выписке ЕГРЮЛ и ЕГРИП есть гражданство. У вас есть гражданство только для ИП. КФХ они аналог ИП и тоже содержат гражданство Главы КФХ в выписке, также содержится Гражданство для руководителей ЮЛ. Соответственно два вопроса:
1. возможно что-то не выгружается и есть другой запрос, кроме как по ИНН или ОГРНИП для получения этих данных для КФХ и ЮЛ?
2. если вы не храните эти данные, то когда они начнут хранится, ведь у налоговой в выгрузке они есть? И если вы позиционируете себя агрегатором, то почему этих данных нет?
Данный параметр очень нужен, прошу не уводить в приват и указать сроки по обогащению данных в вашей системе.
Запрос геокода на Python: Можно ли отправить запрос без верификации SSL сертификата?
запрос на Python:
from dadata import Dadata token = "xxx" dadata = Dadata(token) result = dadata.suggest("address", "москва хабар")
выдает ошибку: ConnectError: [SSL: CERTIFICATE_VERIFY_FAILED]. Можно ли отправить запрос без верификации сертификата?
Запрос без верификации сертификата отправить нельзя. Поскольку с сертификатом у «Дадаты» все в порядке, ошибка, вероятно, указывает на устаревшие сертификаты вашей операционной системы и/или Python. Обновите их.
Параметр kwargs у функции suggest в PHP
Здравствуйте. У функции suggest есть четвертый параметр: $kwargs [ ].
Как его использовать? На PHP ? ?.
Пробовал так:
$kwargs = [
'bounds' => 'city-flat'
];
И так:
$kwargs = [
'from_bound' => [
'value' => 'city'
],
'to_bound' => [
'value' => 'flat'
],
];
Добрый день! Параметры описаны в документации. Пример для from_bound/to_bound:
$token = "***"; $dadata = new DadataClient($token, ""); $kwargs = [ "from_bound" => ["value" => "city"], "to_bound" => ["value" => "flat"] ]; $response = $dadata->suggest("address", "москва сухонская 11 89", 5, $kwargs); var_dump($response);
Сервис поддержки клиентов работает на платформе UserEcho