Служба поддержки DaData.ru

Если чего-то не хватает, или вы столкнулись с проблемой — оставьте сообщение, и мы ответим в течение 24 часов. Работаем с понедельника по пятницу, с 10 до 19 по Москве.

0
Исправлен

Iphone Ipad

Анонимный 10 лет назад обновлен Антон Жиянов 5 лет назад 10
Не работают выбор подсказки из выпадающего списка, на андроиде работает.
Ответ
Антон Жиянов 5 лет назад

Итого: проблема исправлена в версии 19.7.1.

0
Не ошибка

В IE 9 не работают подсказки

Анонимный 10 лет назад обновлен Damir Bagapov 10 лет назад 8
В chrome, mozilla подсказки работают, в ie 9 нет
Пример, http://jsfiddle.net/o3Lt70d6/4/
Ответ
Антон Жиянов 10 лет назад
Я вижу, вы просто открываете локальный файл. К сожалению, таким образом Подсказки не отработают из-за ограничений безопасности в IE 9.

Подключите Подсказки на реальном сайте — все заработает.
0
Отвечен

AJAX Request header field X-Secret is not allowed by Access-Control-Allow-Headers.

Анонимный 10 лет назад обновлен oleg 10 лет назад 2
Пытаемся вызвать API стандартизации через jquery, вот так:
$.ajax({
        type: 'POST',
        crossDomain: true,
        beforeSend: function(xhr) {
            xhr.setRequestHeader('Authorization', 'Token токен');
            xhr.setRequestHeader('X-Secret', 'секретный');
        },
        url: 'https://dadata.ru/api/v2/clean/phone',
        contentType: 'application/json',
        data: '+8314545445 доб 11'
    })
    .fail(function(jqXHR, textStatus, errorThrown) {
        alert("Ошибка: " + errorThrown);
    })
    .done(function(data) {
        debugger;
        alert(data);
    });

а в результате получаем:
AJAX Request header field X-Secret is not allowed by Access-Control-Allow-Headers.

что делаем не так? или через Jquery нельзя использовать api стандартизации?
Ответ
Антон Жиянов 10 лет назад
Дадата не поддерживает вызов стандартизации из JS. Иначе злоумышленник мог бы похитить секретный ключ и использовать стандартизацию за ваш счет.
0
Завершен

Установить timeout в подсказках

Анонимный 10 лет назад обновлен Антон Жиянов 9 лет назад 3
Добрый день. Использую jquery плагин подсказок. Несколько раз сталкивался с долгим ответом от сервера dadata. Рациональное решение - прописать timeout, после которого пользователь бы вводил вручную данные без подсказок. В REST API можно прописать timeout явно. Как это сделать в jquery плагине?
Заранее спасибо.
Ответ
Антон Жиянов 9 лет назад
Добавили параметр timeout, по умолчанию 3 секунды. Задается в параметрах плагина:
$("#address").suggestions({
  ...,
  timeout: 2000 // в миллисекундах
});
0
На рассмотрении

Интеграция Dadata и RetailCRM

Анонимный 10 лет назад обновлен 10 лет назад 4
Собственно вопрос, в самом заголовке. 
Со своей стороны, узнавал у технарей RetailCRM они сказали что у них работы на очереди до конца весны и раньше они не могут.
0
Не ошибка

Подсказки в opera 12.16 не работают

Анонимный 10 лет назад обновлен Антон Жиянов 10 лет назад 3
Никакой реакции на ввод текста в поля.
0
Исправлен

Ошибка в jQuery плагине при формированию value по объекту адреса

Кирилл 9 лет назад обновлен Антон Жиянов 8 лет назад 7
У Вас явная ошибка в jQuery плагине.
если передать плагину следующий параметр
{ bounds: "city-settlement" }, тогда при вводе "Железнодорожный" в подсказках будет показываться "Московская обл, г Железнодорожный", а при выборе этого варианта - в поле запишется "г Железнодорожный", а должно писаться именно как в подсказке.

Чтобы изменить это поведение, я изменил параметр на { bounds: "region-area-city-settlement" }, тогда при вводе "Железнодорожный" - все правильно и показывается в подсказках и при выборе "Московская обл, г Железнодорожный"
а вот для запроса "Москва" - в подсказках будет показываться "г Москва" а при выборе - "г Москва, г Москва", соответственно для этого варианта ситуация следующая - когда происходит выбор варианта подсказки - к вам на сервер уходит запрос с параметром { count: 1 }, он возвращает объект suggestion, внутри которого поле value заполнено как надо "г Москва", потом этот объект suggestion попадает вот в эту функцию:

checkValueBounds: function (suggestion) {
    var that = this,
        valueData;

    // If any bounds set up
    if (that.bounds.own.length && that.type.composeValue) {
        valueData = that.copyBoundedData(suggestion.data, that.bounds.own);
        suggestion.value = that.type.composeValue(valueData);
    }
}
И здесь поле value перезаписывается через функцию composeValue
composeValue: function (data) {
    return utils.compact([
        data.region_with_type || utils.compact([data.region, data.region_type]).join(' '),
        data.area_with_type || utils.compact([data.area_type, data.area]).join(' '),
        data.city_with_type || utils.compact([data.city_type, data.city]).join(' '),
        data.settlement_with_type || utils.compact([data.settlement_type, data.settlement]).join(' '),
        data.street_with_type || utils.compact([data.street_type, data.street]).join(' '),
        utils.compact([data.house_type, data.house, data.block_type, data.block]).join(' '),
        utils.compact([data.flat_type, data.flat]).join(' '),
        data.postal_box ? 'а/я ' + data.postal_box : null
    ]).join(', ');
}
Но она очевидно работает не правильно, т.к. вы в обновлении 15.7 - сделали следующий пункт:
Адрес одной строкой формируем с учетом требований Почты России: если город — центр региона, название региона не пишется (г Новосибирск, ул Абаканская, д 21). Если центр района — не пишется название района (Московская обл, г Одинцово, ул Ракетчиков).
А в функции composeValue - value просто формируется объединеннием всего подряд - вот и получается что от сервера приходит правильный value "г Москва", а функция composeValue возвращает неправильное значение "г Москва, г Москва".

Т.к. запрос к вашему серверу при выборе подсказки уходит с параметрами { count: 1, from_bound: {value: "region"}, to_bound: {value: "settlement"} }, т.е. с учетом bounds, то и ответ приходит правильно отформатированный уже, поэтому по-сути вызов composeValue - просто лишний, поэтому у себя я просто исправил функцию checkValueBounds вот так:
checkValueBounds: function (suggestion) {
    return;
    var that = this,
        valueData;

    // If any bounds set up
    if (that.bounds.own.length && that.type.composeValue) {
        valueData = that.copyBoundedData(suggestion.data, that.bounds.own);
        suggestion.value = that.type.composeValue(valueData);
    }
}


P.S. Еще у меня есть проблема - наша компания задумывается о приобретении standalone версии подсказок, чтобы обезопасить себя от вопросов доступности вашего сервиса, но мне никак не может ваш менеджер толком объяснить - что именно будет работать по-другому в standalone версии, но говорит что точно чего-то не будет, а чего до конца не ясно, в общем плавает ваш менеджер в этом вопросе... Я предложил чтобы не разбираться с этим вопросом на словах, а опробовать в деле - можете ли вы запустить у себя отдельную чистую standalone версию, и давать к ней доступ хотя бы по запросу через менеджера, а то как-то стремно покупать лицензию на что-то что работает так же, но только не совсем точно так же, а вот по-другому:) Хочется перед покупкой оттестировать именно на том функционале который и будет приобретен.

P.P.S. Спасибо за ваш сервис - все очень круто!)
0
Не ошибка

Только при count = 1 в запросе возвращается пустой массив(объект)

Stas 10 лет назад обновлен 10 лет назад 12
curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "Authorization: Token ****key***" -d "{ \"count\": 1, \"query\": \"Москва, Ленинский пр-кт, 99\" }" https://dadata.ru/api/v2/suggest/address
возвращает:
{"suggestions":[]}
При том всё где ">1" по 2 и более объекта масиве:
curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "Authorization: Token ****" -d "{ \"count\": 2, \"query\": \"Москва, Ленинский пр-кт, 99\" }" https://dadata.ru/api/v2/suggest/address
{"suggestions":[{"value":"Ханты-Мансийский Автономный округ - Югра, г Сургут, ул Курортная, д 99б","unrestricted_value":"Ханты-Мансийский Автономный округ - Югра, г Сургут, ул Курортная, д 99б","data":{"qc_complete":null,"qc_house":null,"qc_geo":null,"postal_code":"628403","postal_box":null,"country":"Россия","region_with_type":"Ханты-Мансийский Авт
╨╛╨╜╨╛╨╝╨╜╤ï╨╣ ╨╛╨║╤Ç╤â╨│ - ╨«╨│╤Ç╨░","region_type":"╨░╨╛","region_type_full":"╨░╨▓╤é╨╛╨╜╨╛╨╝╨╜╤ï╨╣ ╨╛╨║╤Ç╤â╨│","region":"╨Ñ╨░╨╜╤é╤ï-╨£╨░╨╜╤ü╨╕╨╣╤ü╨║╨╕╨╣ ╨É╨▓╤é╨
╛╨╜╨╛╨╝╨╜╤ï╨╣ ╨╛╨║╤Ç╤â╨│ - ╨«╨│╤Ç╨░","area_with_type":null,"area_type":null,"area_type_full":null,"area":null,"city_with_type":"╨│ ╨í╤â╤Ç╨│╤â╤é","city_type":"╨│","city_type_full":"╨│╨╛╤Ç╨╛╨┤","city":"╨í╤â╤Ç╨│╤â╤é","settlement_with_type":null,"settlement_type":null,"settlement_type_full":null,"settlement":null,"street_with_type":"╤â╨╗ ╨Ü╤â╤Ç╨╛╤Ç╤é╨╜╨░╤Å","street_type":"╤â╨╗","street_type_full":"╤â╨╗╨╕╤å╨░","street":"╨Ü╤â╤Ç╨╛╤Ç╤é╨╜╨░╤Å","house_type":"╨┤","house_type_full":"╨┤╨╛╨╝","house":"99╨▒","block_type":null,"block":null,"flat_area":null,"flat_type":null,"flat":null,"fias_id":null,"kladr_id":"8600001000000480006","tax_office":"8602","tax_office_legal":null,"okato":"71136000000","oktmo":null,"geo_lat":null,"geo_lon":null,"unparsed_parts":null,"qc":null}},{"value":"╤Ç╨╡╤ü╨┐ ╨í╨╡╨▓╨╡╤Ç╨╜╨░╤Å ╨₧
сетия - Алания, г Владикавказ, ул Ардонская, д 99","unrestricted_value":"респ Северная Осетия - Алания, г Владикавказ, ул Ардонская, д 99","data":{"qc_complete":null,"qc_house":null,"qc_geo":null,"postal_code":"362008","postal_box":null,"country":"Россия","region_with_type":"респ Северная Осетия - Алания","region_type":"респ","region_type_full":"республик
╨░","region":"╨í╨╡╨▓╨╡╤Ç╨╜╨░╤Å ╨₧╤ü╨╡╤é╨╕╤Å - ╨É╨╗╨░╨╜╨╕╤Å","area_with_type":null,"area_type":null,"area_type_full":null,"area":null,"city_with_type":"╨│ ╨Æ╨╗╨░╨
┤╨╕╨║╨░╨▓╨║╨░╨╖","city_type":"╨│","city_type_full":"╨│╨╛╤Ç╨╛╨┤","city":"╨Æ╨╗╨░╨┤╨╕╨║╨░╨▓╨║╨░╨╖","settlement_with_type":null,"settlement_type":null,"settlement_type_full":null,"settlement":null,"street_with_type":"╤â╨╗ ╨É╤Ç╨┤╨╛╨╜╤ü╨║╨░╤Å","street_type":"╤â╨╗","street_type_full":"╤â╨╗╨╕╤å╨░","street":"╨É╤Ç╨┤╨╛╨╜╤ü╨║╨░╤Å","house_type":"╨┤","house_type_full":"╨┤╨╛╨╝","house":"99","block_type":null,"block":null,"flat_area":null,"flat_type":null,"flat":null,"fias_id":null,"kladr_id":"1500000100000080017","tax_office":"1513","tax_office_legal":null,"okato":"90401000000","oktmo":null,"geo_lat":null,"geo_lon":null,"unparsed_parts":null,"qc":null}}]}

Мне всё равно нужен первый элемент, но без count=1 нету геолокации, если я верно понял.
Ответ
Антон Жиянов 9 лет назад
Полный тип записываем именно для поселка, потому что он сокращается как «п», и точно также сокращается поселение. Поэтому пишем полный тип, чтобы избежать неоднозначности.
0
Отвечен

Модуль на Престашоп 1.4Х

Анонимный 10 лет назад обновлен Анастасия 8 лет назад 3
Планируется модуль для Престашоп 1.4х ?
Ответ
Антон Жиянов 10 лет назад
Нет, но есть модуль для 1.5+

Сервис поддержки клиентов работает на платформе UserEcho