biplane / yandex-direct

PHP library for Yandex.Direct API.
MIT License
44 stars 23 forks source link

Login normalization only for Yandex account #52

Closed Alexsisukin closed 1 year ago

Alexsisukin commented 1 year ago

Столкнулся с проблемой когда логин в директе такого вида el.4lekseeva@mail.ru

image

в результате когда библиотека нормализует логин по правилам и делаю запрос к api получаю ошибку Объект не найден: В HTTP-заголовке Client-Login указан несуществующий логин избежать ошибку можно передав в заголовке Client-Login = el.4lekseeva@mail.ru , то есть не измененный нормализацией

Поэтому предлагаю дать управление нормализацией логина , что бы можно было отказаться от замены . на - и подобные кейсы обрабатывать на уровне приложения

yethee commented 1 year ago

Думаю, имеет смысл оставить нормализацию в тех случаях, когда используется аккаунт Яндекса. То есть, когда логин не содержит доменной части. Чтобы не ломать совместимость с API для финансовых методов. Как ранее обсуждалось в #51

Другое возможное решение, перенести логику нормализации логина туда, где генерируется финансовый токен.

https://github.com/biplane/yandex-direct/blob/3a43c20283d39b691f115690b5883f046f4ef03f/src/Api/ApiSoapClientV4.php#L163-L177

Alexsisukin commented 1 year ago

@yethee Спасибо за совет, сделал нормализацию только для аккаунт Яндекса

Alexsisukin commented 1 year ago

@yethee пришлось изменить тест \Biplane\Tests\YandexDirect\ConfigTest::testNormalizeClientLogin так как второй кейс в DataProvider стал не актуальный

yethee commented 1 year ago

Спасибо!