Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/vikdiesel/amocrm-php-wrapper

AmoCRM PHP API 2020 - Упрощенная авторизация
https://github.com/vikdiesel/amocrm-php-wrapper

amocrm amocrm-api amocrm-php php-amocrm

Last synced: about 1 month ago
JSON representation

AmoCRM PHP API 2020 - Упрощенная авторизация

Awesome Lists containing this project

README

        

# AmoCRM PHP API 2020

![version](https://img.shields.io/badge/version-1.0.0-blue.svg) ![license](https://img.shields.io/badge/license-MIT-blue.svg)

PHP-класс для работы с AmoCRM через [упрощенную авторизацию](#упрощенная-авторизация-amocrm).

## Что умеет?

- Авторизация в AmoCRM от имени владельца аккаунта
- Отправлять любые запросы из документации AmoCRM

## Упрощенная авторизация AmoCRM

В 2020-м (или в 2019?) AmoCRM убрала возможность возможность создать ключ API в личном кабинете.

С тех пор, все новые интеграции должны проходить авторизацию через oAuth2, что кажется немного избыточным, если, например, нужно только отправлять контакты и заявки с сайта в AmoCRM.

Однако, даже [упрощенная авторизация](https://www.amocrm.ru/developers/content/oauth/easy-auth) в AmoCRM требует получать новый `access_token` каждые 24 часа, через `refresh_token`, который тоже обновляется с получением нового `access_token`

Как раньше не получится, когда можно было взять ключ API и спокойно отправлять нужную информацию.

## Как использовать?

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

Самый простой вариант — установить через Composer `composer require vikdiesel/amocrm-php-wrapper`

#### Создание интеграции

Перейдите в раздел *Настройки -> Интеграции* и щелкните *Создать Интеграцию*

![AmoCRM создание интеграции](https://marketto.ru/images/amocrm-1.png?v=1)

После сохранения вы сможете получить нужные ключи.

![AmoCRM авторизация API](https://marketto.ru/images/amocrm-2.png?v=1)

#### Простой пример: добавление контакта и сделки в AmoCRM

Пример инициализации и добавления контакта и сделки (лида) в AmoCRM


use AmoCrmPhpWrapper\Package\AmoClient;

// Домен в AmoCRM
$amo_domain = 'YOURNAME.amocrm.ru';

// ID интеграции
$client_id = '852d137c-e258-4f18-9db7-aaaaaaaaaaaa';

// Секретный ключ
$client_secret = '';

// Обязательно должен быть точно такой же, какой был указан при создании интеграции в интерфейсе AmoCRM. В классе больше никак не используется.
$redirect_uri = 'https://example.com';

// Код авторизации (действует 20 минут). В течение этого времени необходимо сделать первый запрос. Если прошло больше времени, то закройте и откройте карточку интеграции заново в интерфейсе amoCRM
$initial_code = '';

try {
$amoClient = new AmoClient( $amo_domain, $client_id, $client_secret, $redirect_uri, $initial_code );

$name = 'Lubjek Strowinski';
$phone = '+447824200245';
$sale = '7777';

$r = $amoClient->request( '/api/v2/contacts', [
'add' => [
[
'name' => $name,
'tags' => 'test-case',
'custom_fields' => [
[
'id' => '406896',
'values' => [
[
'value' => $phone,
'enum' => 'WORK'
]
]
]
]
]
]
] );

$r = $amoClient->request( '/api/v2/leads', [
'add' => [
[
'name' => $name,
'tags' => 'test-case',
'sale' => $sale,
'contacts_id' => $r->_embedded->items[0]->id
]
]
] );

} catch ( \AmoCrmPhpWrapper\Package\Exception\AmoClientException $exception ) {
echo $exception->getMessage();
}