mesilov / bitrix24-php-sdk

A powerful PHP library for the Bitrix24 REST API
MIT License
409 stars 161 forks source link

2.x: Class 'Bitrix24\SDK\Services\Main' not found #210

Closed HawkV closed 7 months ago

HawkV commented 3 years ago

Не обнаружен класс Main в Bitrix24\SDK\Services; Единственный Main есть в Bitrix24\SDK\Services\Main\Service\Main, но это именно сервис, и на вход он принимает не ApiClient, как в примере "/docs/RU/Core/Auth/auth.md#подключение-к-битрикс24-с-использованием-oauth-20", а CoreInterface

DarkTraveler commented 3 years ago

@HawkV документация пока устарела) Я сам всю ночь просидел разбираясь)) Благо IDE намеков достаточно дала + просто из упрямства разные варианты перепробовал.

$token = new \Bitrix24\SDK\Core\Credentials\AccessToken(
    $accessToken,
    $refreshToken,
    1604179882
);

$credentials = \Bitrix24\SDK\Core\Credentials\Credentials::createForOAuth($token, $appProfile, $domain);
$apiClient = new \Bitrix24\SDK\Core\ApiClient($credentials, $traceableClient, $log);
$coreBuilder = new \Bitrix24\SDK\Core\CoreBuilder();
$authCore = $coreBuilder->withWebhookUrl($domain . '/rest/1/qpkvi88xglywert4/');
$coreInterface = $coreBuilder->build($authCore);
$batch = new \Bitrix24\SDK\Core\Batch($coreInterface, $log);
$batchService = new \Bitrix24\SDK\Services\CRM\Deal\Service\Batch($batch, $log);

    $list = $dealsService->list(["DATE_CREATE" => "ASC"], ["UF_CRM_1613354197" => 1, '!UF_CRM_1613354833' => 1], ['ID', 'TITLE', 'UF_CRM_1595902763', 'UF_CRM_1601007247862', 'UF_CRM_1583308488', 'UF_CRM_1605511641'], 0)->getDeals();
port20031 commented 2 years ago

Доброго времени суток. Поставил библиотеку 2.0 При работе с токенами получаю Class 'Bitrix24\SDK\Services\Main' not found in в этой строке $app = new Bitrix24\SDK\Services\Main ($apiClient, $log); Как исправить ситуацию ?

krainii commented 2 years ago

Я взял пример из документации. Но была такая же проблема. Сработал такой вариант

    $apiClient = new \Bitrix24\SDK\Core\ApiClient($credentials, $traceableClient, $log);
    $errorHandler = new \Bitrix24\SDK\Core\ApiLevelErrorHandler($log);
    $ed = new \Symfony\Component\EventDispatcher\EventDispatcher();
    $ed->addListener(
        \Bitrix24\SDK\Events\AuthTokenRenewedEvent::class,
        static function (\Bitrix24\SDK\Events\AuthTokenRenewedEvent $event) {
            var_dump('AuthTokenRenewed!');
            print($event->getRenewedToken()->getAccessToken()->getAccessToken() . PHP_EOL);
        }
    );

    $core = new \Bitrix24\SDK\Core\Core($apiClient, $errorHandler, $ed, $log);
    $res = $core->call('app.info');