Библиотека

Если вы являетесь разработчиком на PHP, то вы можете взять написанный клиент для amoCRM. Клиент написан для библиотеки PHP League OAuth 2.0 Client, которая также открыто распространяется.

Все начинается также как в статье Пример по шагам с регистрации интеграции. А далее мы рассмотрим, как можно было бы реализовать простейшую интеграцию с использованием готового клиента (этот же пример уже есть в клиенте amoCRM в файле example.php):

  1. Добавить клиента в свой проект можно с помощью Composer командой composer require amocrm/oauth2-amocrm;
  2. Открываем файл example.php для того, чтобы адаптировать его под свою интеграцию;
  3. В переменной $provider хранится объект клиента, в конструктор этого объекта нужно передать ключи, которые вы получили после регистрации интеграции, а также указать redirectUri (он должен совпасть с тем, который вы указывали при регистрации приложения). Для корректной работы Redirect URI в настройках интеграции должен соответствовать путь до example.php на вашем домене. Важно отметить, что Redirect URI должен быть валидным и доступным из вне по протоколу https адресом;
  4. Вся логика самого приложения может быть реализована в строках в которых мы для примера использовали обращение к методу api/v2/account;
  5. Обратите внимание, что в примере для хранения ключей используется обычный файл путь и название которого определены в первых строках example.php: define(‘TOKEN_FILE’, DIRECTORY_SEPARATOR . ‘tmp’ . DIRECTORY_SEPARATOR . ‘token_info.json’); За обработку сохранения ключа отвечает функция saveToken.
    Показанный пример упрощен, не учитывает работы с несколькими пользователями и аккаунтами, т.к. сохраняет все ключи в один файл. Необходимо заменить механизм хранения на более надежный, используемый вами в остальном приложении. Используемые файлы должны быть недоступны для обращения третьими лицами для предотвращения кражи ключей.

Теперь, если вы обратитесь к скрипту example.php первый раз, то вы увидите кнопку авторизации, нажав на которую вы увидите модальное окно с предоставлением доступа к amoCRM.

Вы предоставляете доступ к нужному аккаунту, модальное окно закрывается и родительское окно перезагрузится, отобразив имя пользователя под которым вы авторизовали интеграцию в amoCRM.

Теперь, если вызвать файл с GET параметром request=1 – example.php?request=1, то выполнится обращение к методу api/v2/account и выведется ID и название аккаунта к которому вы предоставили доступ.


Смотрите также

Пример по шагам
Обзор oAuth 2.0
Запросы к API c Access токеном