Skip to content
forked from kstkn/dadata

SDK для работы с API DaData.ru

License

Notifications You must be signed in to change notification settings

iamwildtuna/dadata

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Latest Stable Version Total Downloads License

Появился официальный SDK.

Есть бандл для Symfony.

SDK для работы с API DaData.ru (Fork gietos/dadata)

Посмотреть все проекты или поддержать автора можно тут.

API документация

Changelog

  • 1.2 - Добавлена поддержа составной записи;
  • 1.3 - Добавлена пакетная очистка данных;
  • 1.4 - Добавлена поддержка Guzzle 7;
  • 1.5 - Исправлена ошибка в функции cleanAddress, добавлена поддержка Guzzle 7.2;
  • 1.5.1 - Добавлена поддержка Guzzle 7.3;
  • 1.5.2 - Добавлена поддержка Guzzle 7.4;

Установка

Для установки можно использовать менеджер пакетов Composer

composer require iamwildtuna/dadata

Использование

$client = new Dadata\Client(new \GuzzleHttp\Client(), [
    'token' => '...',
    'secret' => '...',
]);

Очистка данных

Методы на вход могут принимать как строку, так и массив до 50 элементов (ограничение API DaData).

Пример очистки данных строками

$response = $client->cleanAddress('мск сухонска 11/-89');
$response = $client->cleanAddressSuggestion('мск сухонска 11/-89'); // Очистка адреса через API подсказок
/*
Dadata\Response\Address Object
(
    [source] =>
    [result] =>
    [postal_code] => 127642
    [country] => Россия
    [region_fias_id] => 0c5b2444-70a0-4932-980c-b4dc0d3f02b5
    [region_kladr_id] => 7700000000000
    [region_with_type] => г Москва
    [region_type] => г
    [region_type_full] => город
    [region] => Москва
    [area_fias_id] =>
    [area_kladr_id] =>
    [area_with_type] =>
    [area_type] =>
    [area_type_full] =>
    [area] =>
    [city_fias_id] => 0c5b2444-70a0-4932-980c-b4dc0d3f02b5
    [city_kladr_id] => 7700000000000
    [city_with_type] => г Москва
    [city_type] => г
    [city_type_full] => город
    [city] => Москва
    [city_area] => Северо-восточный
    [city_district_fias_id] =>
    [city_district_kladr_id] =>
    [city_district_with_type] => р-н Северное Медведково
    [city_district_type] => р-н
    [city_district_type_full] => район
    [city_district] => Северное Медведково
    [settlement_fias_id] =>
    [settlement_kladr_id] =>
    [settlement_with_type] =>
    [settlement_type] =>
    [settlement_type_full] =>
    [settlement] =>
    [street_fias_id] => 95dbf7fb-0dd4-4a04-8100-4f6c847564b5
    [street_kladr_id] => 77000000000283600
    [street_with_type] => ул Сухонская
    [street_type] => ул
    [street_type_full] => улица
    [street] => Сухонская
    [house_fias_id] => 5ee84ac0-eb9a-4b42-b814-2f5f7c27c255
    [house_kladr_id] => 7700000000028360004
    [house_type] => д
    [house_type_full] => дом
    [house] => 11
    [block_type] =>
    [block_type_full] =>
    [block] =>
    [flat_type] => кв
    [flat_type_full] => квартира
    [flat] => 89
    [flat_area] => 0
    [square_meter_price] =>
    [flat_price] =>
    [postal_box] =>
    [fias_id] => 5ee84ac0-eb9a-4b42-b814-2f5f7c27c255
    [fias_level] => 8
    [kladr_id] => 7700000000028360004
    [capital_marker] => 0
    [okato] => 45280583000
    [oktmo] => 45362000
    [tax_office] => 7715
    [tax_office_legal] => 7715
    [timezone] =>
    [geo_lat] => 55.8782557
    [geo_lon] => 37.65372
    [beltway_hit] =>
    [beltway_distance] => 0
    [qc_geo] => 0
    [qc_complete] => 0
    [qc_house] => 0
    [unparsed_parts] =>
    [metro] =>
    [qc] => 0
)
*/
$response = $client->cleanPhone('тел 7165219 доб139');
$response = $client->cleanPassport('4509 235857');
$response = $client->cleanName('Срегей владимерович иванов');
$response = $client->cleanEmail('serega@yandex/ru');
$response = $client->cleanDate('24/3/12');
$response = $client->cleanVehicle('форд фокус')

Пример очистки списка данных

$data[] = '9261123934';
$data[] = '8 (903) 126-12-33';

$response = $client->cleanPhone($data);

Ответ

Array
(
    [0] => Dadata\Response\Phone Object
        (
            [source] => 9261123934
            [type] => Мобильный
            [phone] => +7 926 112-39-34
            [country_code] => 7
            [city_code] => 926
            [number] => 1123934
            [extension] => 
            [provider] => ПАО "МегаФон"
            [region] => Москва и Московская область
            [timezone] => UTC+3
            [qc_conflict] => 0
            [qc] => 0
        )

    [1] => Dadata\Response\Phone Object
        (
            [source] => 8 (903) 126-12-33
            [type] => Мобильный
            [phone] => +7 903 126-12-33
            [country_code] => 7
            [city_code] => 903
            [number] => 1261233
            [extension] => 
            [provider] => ПАО "Вымпел-Коммуникации"
            [region] => Москва и Московская область
            [timezone] => UTC+3
            [qc_conflict] => 0
            [qc] => 0
        )

)

Пример составного запроса

$data['structure'] = ['AS_IS', 'NAME', 'ADDRESS', 'PHONE'];

$item1 = [1, 'Ианов Иван Питрович', 'Сухонская улица, 11 кв 89', '89262223344'];
$item2 = [2, 'Петров Еван Алегович', 'мск сухонска 11/-89', '89221234356'];

$data['data'][] = $item1;
$data['data'][] = $item2;

$response = $client->cleanStructure($data); // Возвращает данные в виде ассоциативного массива

About

SDK для работы с API DaData.ru

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%