PHPackages                             amocrm/oauth2-amocrm - 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. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. amocrm/oauth2-amocrm

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

amocrm/oauth2-amocrm
====================

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

3.0.0(1y ago)25978.2k↓44.8%16[2 issues](https://github.com/amocrm/amocrm-oauth-client/issues)[2 PRs](https://github.com/amocrm/amocrm-oauth-client/pulls)5MITPHPPHP &gt;=7.1 || &gt;=8.0CI failing

Since Jun 5Pushed 1y ago2 watchersCompare

[ Source](https://github.com/amocrm/amocrm-oauth-client)[ Packagist](https://packagist.org/packages/amocrm/oauth2-amocrm)[ RSS](/packages/amocrm-oauth2-amocrm/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (10)Dependencies (3)Versions (15)Used By (5)

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

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

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

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

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

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

```
composer require amocrm/oauth2-amocrm

```

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

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

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

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

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

```
$provider = new AmoCRM([
    '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 \AmoCRM\OAuth2\Client\Provider\AmoCRMResourceOwner $ownerDetails */
    $ownerDetails = $provider->getResourceOwner($token);

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

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

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

```
$provider = new AmoCRM([
    '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, после чего будет отображена кнопка для открытия модального окна автооризации приложения в amoCRM. После получения доступов вы увидете имя пользователя на экране. Если добавить GET параметр - request=1, то будет совершен запрос за информацией об аккаунте с сохраненным ранее токеном.

###  Health Score

51

—

FairBetter than 95% of packages

Maintenance38

Infrequent updates — may be unmaintained

Popularity50

Moderate usage in the ecosystem

Community24

Small or concentrated contributor base

Maturity76

Established project with proven stability

 Bus Factor1

Top contributor holds 84.8% 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.

###  Release Activity

Cadence

Every ~206 days

Recently: every ~393 days

Total

13

Last Release

524d ago

Major Versions

1.0.1 → 2.02019-09-02

2.0.8 → 3.0.02025-03-11

PHP version history (3 changes)v1.0.0PHP &gt;=5.6.0

2.0.7PHP &gt;=7.0

3.0.0PHP &gt;=7.1 || &gt;=8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/492988105724b8150ec53dc63c199cb094ee0ec702119896a5efcd1e6b88b2e4?d=identicon)[bessudnov](/maintainers/bessudnov)

---

Top Contributors

[![bessudnov](https://avatars.githubusercontent.com/u/5815770?v=4)](https://github.com/bessudnov "bessudnov (28 commits)")[![MaximBobylev](https://avatars.githubusercontent.com/u/54582196?v=4)](https://github.com/MaximBobylev "MaximBobylev (2 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)")

---

Tags

clientoauthoauth2authorizationauthorisationamoCRM

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

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

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

###  Alternatives

[stevenmaguire/oauth2-keycloak

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

2306.6M50](/packages/stevenmaguire-oauth2-keycloak)[patrickbussmann/oauth2-apple

Sign in with Apple OAuth 2.0 Client Provider for The PHP League OAuth2-Client

1162.9M14](/packages/patrickbussmann-oauth2-apple)[omines/oauth2-gitlab

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

36798.5k16](/packages/omines-oauth2-gitlab)[league/oauth2-instagram

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

661.1M52](/packages/league-oauth2-instagram)[mollie/oauth2-mollie-php

Mollie Provider for OAuth 2.0 Client

271.9M1](/packages/mollie-oauth2-mollie-php)[dalpras/oauth2-gotowebinar

LogMeIn GoToWebinar OAuth 2.0 Client Provider for the PHP League's OAuth 2.0 Client

1246.9k](/packages/dalpras-oauth2-gotowebinar)

PHPackages © 2026

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