biplane / yandex-direct

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

не работает Sandbox для отчетов #50

Closed directpromo closed 1 year ago

directpromo commented 1 year ago

При установке в конфиге useSandbox для отчетов: $config = ConfigBuilder::create() ->useSandbox('true') ->setAccessToken('y0********') ->setClientLogin('********') ->setLocale('ru') ->getConfig();

Запрос идет на боевой сервер, что неудобно для разработки :(

Подправил функцию "createHttpRequest()" в файле "/src/Soap/ApiSoapClient.php"

===

private function createHttpRequest(Reports\ReportRequest $reportRequest): RequestInterface
    {        
        $endPoint = self::ENDPOINT;
        if ($this->config->useSandbox()) {
            $endPoint = str_replace('api.direct.yandex.', 'api-sandbox.direct.yandex.', $endPoint);
        }

        $request = $this->requestFactory->createRequest('POST', $endPoint)
            ->withHeader('Authorization', sprintf('Bearer %s', $this->config->getAccessToken()))
            .......

====

Возможно, хардкор. Поэтому патч делать не стал.

yethee commented 1 year ago

Пока не вижу более элегантного решения. А подобное изменение будет согласовано с решением в Biplane\YandexDirect\Soap\ApiSoapClient.

Позже, если будет найдено альтернативное решение, можно будет так же согласовано отрефакторить.