PHPackages                             avito/oauth2-avito - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. avito/oauth2-avito

ActiveLibrary

avito/oauth2-avito
==================

Avito OAuth 2.0 Client Provider for The PHP League OAuth2-Client

024↓100%PHP

Since Jun 13Pushed 2y ago1 watchersCompare

[ Source](https://github.com/EDidenko/avito-oauth-client)[ Packagist](https://packagist.org/packages/avito/oauth2-avito)[ RSS](/packages/avito-oauth2-avito/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Avito Provider для OAuth 2.0 Client
===================================

[](#avito-provider-для-oauth-20-client)

В данном пакете представлена поддержка протокола OAuth 2.0 в Avito для библитеки PHP League [OAuth 2.0 Client](https://github.com/thephpleague/oauth2-client).

Установка
---------

[](#установка)

Установить можно с помощью composer:

```
composer require avito/oauth2-avito

```

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

[](#использование)

Использование идентично использованию The League's OAuth client, используя `Avito\OAuth2\Client\Provider\Avito` в качестве провайдера.

### Обработка кода авторизации (Authorization Code)

[](#обработка-кода-авторизации-authorization-code)

```
$provider = new Avito([
    'clientId' => 'YOUR_CLIENT_ID',
    'clientSecret' => 'YOUR_CLIENT_SECRET',
    'redirectUri' => 'http://your-redirect-uri',
]);

if (isset($_GET['code']) && $_GET['code']) {
    //Вызов функции setBaseDomain требуется для установки контектс аккаунта.
    if (isset($_GET['referer'])) {
        $provider->setBaseDomain($_GET['referer']);
    }

    $token = $provider->getAccessToken('authorization_code', [
        'code' => $_GET['code']
    ]);

    //todo сохраняем access, refresh токены и привязку к аккаунту и возможно пользователю

    /** @var \Avito\OAuth2\Client\Provider\AvitoResourceOwner $ownerDetails */
    $ownerDetails = $provider->getResourceOwner($token);

    printf('Hello, %s!', $ownerDetails->getName());
}
```

### Обновление access токена

[](#обновление-access-токена)

```
$provider = new Avito([
    'clientId' => 'YOUR_CLIENT_ID',
    'clientSecret' => 'YOUR_CLIENT_SECRET',
    'redirectUri' => 'http://your-redirect-uri',
]);

//todo получение токена из хранилища

$provider->setBaseDomain($token['baseDomain']);
/**
 * Проверяем активен ли токен и делаем запрос или обновляем токен
 */
if (time() >= $token['expires']) {
	/**
	 * Получаем токен по рефрешу
	 */
	try {
		$accessToken = $provider->getAccessToken(new League\OAuth2\Client\Grant\RefreshToken(), [
			'refresh_token' => $token['refreshToken'],
		]);

		//todo сохраняем новые access, refresh токены и привязку к аккаунту и возможно пользователю

	} catch (Exception $e) {
		die((string)$e);
	}
}

//todo повторяем исходный запрос
```

### Кнопка на сайт

[](#кнопка-на-сайт)

Для удобства можно разместить кнопку на сайт для простой установки созданной интеграции.

```

```

### Пример

[](#пример)

В рамках данного репозитория имеется файл **example.php**, который реализует простейшую логику авторизации, сохранения токена, а также совершения запросов. Для использования нужно указать корректные значения при создании провайдера в файле, а также Redirect URI в интеграции ведущий на вызов этого файла на вашем сервере. Дальше для теста можно перейти на страницу example.php, после чего будет отображена кнопка для открытия модального окна автооризации приложения в Avito. После получения доступов вы увидете имя пользователя на экране. Если добавить GET параметр - request=1, то будет совершен запрос за информацией об аккаунте с сохраненным ранее токеном.

###  Health Score

15

—

LowBetter than 3% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity22

Early-stage or recently created project

 Bus Factor1

Top contributor holds 71.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/2f9606da48d49aabf16781e85ce5efe39b9b666b50074f2817e5cc6636e5820c?d=identicon)[xoms](/maintainers/xoms)

---

Top Contributors

[![bessudnov](https://avatars.githubusercontent.com/u/5815770?v=4)](https://github.com/bessudnov "bessudnov (27 commits)")[![EDidenko](https://avatars.githubusercontent.com/u/75557053?v=4)](https://github.com/EDidenko "EDidenko (8 commits)")[![Bolid1](https://avatars.githubusercontent.com/u/5942653?v=4)](https://github.com/Bolid1 "Bolid1 (1 commits)")[![loga4](https://avatars.githubusercontent.com/u/1616937?v=4)](https://github.com/loga4 "loga4 (1 commits)")[![max-kut](https://avatars.githubusercontent.com/u/12911259?v=4)](https://github.com/max-kut "max-kut (1 commits)")

### Embed Badge

![Health badge](/badges/avito-oauth2-avito/health.svg)

```
[![Health](https://phpackages.com/badges/avito-oauth2-avito/health.svg)](https://phpackages.com/packages/avito-oauth2-avito)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
