nameewgeniy / mytarget-oauth2
MyTarget oauth2 api library
0.3.2
2022-01-20 15:59 UTC
Requires
- php: ^8.0
- ext-json: *
- guzzlehttp/guzzle: ^7.4
Requires (Dev)
- codeception/codeception: ^4.0
- codeception/module-asserts: ^1.0.0
README
- Получение токенов для взаимодействия с MyTarget Api.
- Оффициальная документация по получению токенов MyTarget Oauth2.
- После получения токена, его можно использовать для управления ресурсами, воспользовавшись смежной библиотекой nameewgeniy/mytarget-api-client
Требования
- PHP 7.0 и выше
Установка
В файле composer.json
:
{ ... "require": { ... "nameewgeniy/mytarget-oauth2": "*" } ... }
Использование
use nameewgeniy\myTarget\oauth2\Oauth2; // инициализация клиента с конфигурацией по умолчанию $oauth2 = new Oauth2();
// инициализация клиента с конфигурацией пользователя $oauth2 = new Oauth2([ // по умолчанию false. Если true, запросы будут отправляться к песочнице myTarget. 'sandbox' => true, // по умолчанию true. Если true, ответом на запросы к myTarget будет ассоциативный массив, // в противном случае объект. 'assoc' => false, // по умолчанию false. Включает опцию debug // http://docs.guzzlephp.org/en/stable/request-options.html#debug. 'debug' => true, ]);
// получение клиентского токена $token = $oauth2->clientCredentialsGrant('client_id', 'client_secret')->request();
// получение токена агенства $token = $oauth2->agencyCredentialsGrant( 'client_id', 'client_secret', 'agency_client_name')->request();
// получение токена клиента|менеджера агенства $token = $oauth2->agencyCredentialsGrant( 'client_id', 'client_secret', 'agency_client_name', 'agency_access_token')->request();
// получение токена по коду use nameewgeniy\myTarget\oauth2\Scopes; // в классе nameewgeniy\myTarget\oauth2\Scopes существует несколько методов с различными // вариантами прав и константы для своего набора прав. $scopes = Scopes::all(); // ссылка для клиента с редиректом на авторизацию в myTarget с последующим редиректом // на redirect_uri указанном в приложении и отправкой кода $link = $oauth2->authorizeLink('client_id', $scopes, 'state'); // обмен кода на токены доступа $token = $oauth2->authorizationCodeGrant('code', 'client_id')->request();
// обновление токена $tokenWithNewAccessToken = $oauth2->refreshToken( 'refresh_token', 'client_id', 'client_secret')->request();
// удаление токена $oauth2->deleteToken('client_id', 'client_secret', 'user_id')->request();