2017 © Pedro PelΓ‘ez
 

library oauth2-amocrm

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

image

amocrm/oauth2-amocrm

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

  • Tuesday, June 5, 2018
  • by bessudnov
  • Repository
  • 1 Watchers
  • 0 Stars
  • 1 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

amoCRM Provider для OAuth 2.0 Client

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ прСдставлСна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° OAuth 2.0 Π² amoCRM для Π±ΠΈΠ±Π»ΠΈΡ‚Π΅ΠΊΠΈ PHP League OAuth 2.0 Client., (*1)

Установка

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ composer:, (*2)

composer require amocrm/oauth2-amocrm

ИспользованиС

ИспользованиС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎ использованию The League's OAuth client, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ AmoCRM\OAuth2\Client\Provider\AmoCRM Π² качСствС ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°., (*3)

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠΎΠ΄Π° Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ (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 Ρ‚ΠΎΠΊΠ΅Π½Π°

$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 повторяСм исходный запрос

Кнопка Π½Π° сайт

Для удобства ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π° сайт для простой установки созданной ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ., (*4)

<div class="button"></div>
<script 
    class="amocrm_oauth"
    charset="utf-8"
    data-client-id="xxxxxx-client-id-xxxxxx"
    data-title="Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² amoCRM"
    data-compact="false"
    data-class-name="className"
    data-color="red"
    data-state="random string"
    src="https://www.amocrm.ru/auth/button.js"
></script>

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… Π΄Π°Π½Π½ΠΎΠ³ΠΎ рСпозитория имССтся Ρ„Π°ΠΉΠ» example.php, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, сохранСния Ρ‚ΠΎΠΊΠ΅Π½Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ запросов. Для использования Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ значСния ΠΏΡ€ΠΈ создании ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° Π² Ρ„Π°ΠΉΠ»Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ Redirect URI Π² ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ Π½Π° Π²Ρ‹Π·ΠΎΠ² этого Ρ„Π°ΠΉΠ»Π° Π½Π° вашСм сСрвСрС. Π”Π°Π»ΡŒΡˆΠ΅ для тСста ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° страницу example.php, послС Ρ‡Π΅Π³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ° для открытия модального ΠΎΠΊΠ½Π° Π°Π²Ρ‚ΠΎΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ прилоТСния Π² amoCRM. ПослС получСния доступов Π²Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚Π΅ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π° экранС. Если Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ GET ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ - request=1, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ запрос Π·Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎΠ± Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π΅ с сохранСнным Ρ€Π°Π½Π΅Π΅ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠΌ., (*5)

The Versions

05/06 2018

dev-master

9999999-dev

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

  Sources   Download

MIT

The Requires

 

The Development Requires

authorization oauth client oauth2 authorisation amocrm

05/06 2018

v1.0.0

1.0.0.0

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

  Sources   Download

MIT

The Requires

 

The Development Requires

authorization oauth client oauth2 authorisation amocrm