AMO CRM - решение бага с получением токена авторизации.

Первое получение токена авторизации к компоненте AMO CRM пожалуй самый распространенная проблема, с которой сталкиваются все пользователи компонента.

Да действительно механизм первого подключения сайта к AMO CRM получился неудачным, еще на стадии архитектуры. Когда-нибудь я обязательно выпущу обновление, а пока хотел бы поделиться скриптом упрощающим жизнь.

Чтобы гарантировано подключиться к AMO CRM вам необходимо выполнить всего два пункта.

1. Корректно заполнить все системные настройки, указав все данные для интеграции. Это подробно описано в документации

2. Установите компонент modalConsole для выполнения PHP кода в админке и запустите один раз вот такой скрипт

$amocrm = $modx->getService('amocrm', 'amoCRM', MODX_CORE_PATH . 'components/amocrm/model/amocrm/');


$link = $amocrm->tools->prepareLink('/oauth2/access_token');
$data = [
    'client_id' => $amocrm->tools->config['client_id'],
    'client_secret' => $amocrm->tools->config['client_secret'],
    'code' => $amocrm->tools->config['client_code'],
    'grant_type' => 'authorization_code',
    'redirect_uri' => $amocrm->tools->config['site_url']
];

$accessToken = $amocrm->tools->sendCURL($link, $data, 'POST');

if ($accessToken) {
    $accessToken['expires_in'] = time() + $accessToken['expires_in'];
    $lifetime = strtotime('3 month');
    $accessToken['refresh_token_lifetime'] = $lifetime;
    
    $setting = $modx->getObject('modSystemSetting', array('key' => 'amocrm_token_field'));
    $setting->set('value', json_encode($accessToken));
    $setting->save();
    
    $setting = $modx->getObject('modSystemSetting', array('key' => 'amocrm_client_code'));
    $setting->set('value', '');
    $setting->save();
}

Этот код обменивает код авторизации (который выдается на 20 минут) на постоянный токен авторизации, которым впоследствии будут подписаны все запросы в CRM.

Собственно на этом все. Система должна нормально работать. Заказы отправляются в CRM. А для отправки форм вам нужно добавтиь несколько параметров для ajaxForm согласно документации
Николай Савин
12 июня 2023, 21:37
modx.pro
4
1 722
+8
Поблагодарить автора Отправить деньги

Комментарии: 14

Дима Касаткин
23 июня 2023, 22:52
+1
Спасибо большое, Николай, за решение! О нем мечтали, его ждали, про него спрашивали, потом его просили, и вот оно здесь!

P.S Столько обновлений здесь в последнее время, аж глаза разбегаются и такую ценную заметку банально не заметил… А может, потому что картинки в анонсе нет!? Но это не в укор, а просто попытка самоанализа.

P.S.2 А просто Console не подойдет? Просто он почти везде уже есть…
    Николай Савин
    23 июня 2023, 22:57
    +1
    Дим, лично для тебя разрешаю Console. Сам не пользуюсь ей давно.
    Сергей
    05 сентября 2023, 14:44
    0
    Доброго времени суток! Вопрос по компоненту — amocrm.
    у меня работает в режиме хука для Formit — ajaxform.
    Проблема — не создается контакт в вмо, телефон пишется просто в доп полях, он приходит но контакта нет.
    Создается на сколько я понял, только когда авторизован в modx.
    Поковырял исходники. Там вроде как контакт создается на событие — OnUserFormSave (создание, обновление юзера).
    Мне надо бы для анонимов сделать.
      Константин
      26 сентября 2023, 11:02
      0
      Николай добрый день, настраиваю интеграцию, при отправке заявок с сайта они приходят в amocrm, но не создаются сделки, хотя параметр amocrm_form_as_lead включен.
      В консоли появляются ошибки:
      [2023-09-26 10:58:07] (ERROR @ /home/d/dreamt74/dreamt74.beget.tech/public_html/core/components/amocrm/model/amocrm/controllers/auth.php : 38) [amoCRM] Auth error
      [2023-09-26 10:58:07] (ERROR @ /home/d/dreamt74/dreamt74.beget.tech/public_html/core/components/amocrm/model/amocrm/amocrmtools.class.php : 487) Array
      (
          [0] => [AmoCrm] Ошибка запроса
          [1] => Undefined error Код ошибки: 0
          [2] => https://https://houseforest.amocrm.ru.amocrm.ru/oauth2/access_token
          [3] => Array
              (
                  [client_id] => 154488b4-a0c4-442b-8e80-c25d123a9ba3
                  [client_secret] => yh1f14en9vKGjlub54YkMYzYcvDsOqTKiXM6KmssHaknZweIrGygCXVyWO5plnlx
                  [code] => def502002497f2a7a9d513c07d6026dfd234585d031cdc706c60ffdc842a95b68e6aca2b48203648a145cc2d3a39650877cb2600c5cda61589e109496f22ea95b7bf14c1539b3f16812f5e18a0a036dc51926d30b0ca1120eee880822f27166f0ca232d5d92c6ff35075a3d8c47eb1678dd00de47f7fce150b94ec6bab42a64353e22654ed1000f8f548069d2a83cf26c49cc27f0ad62bd9505056560cc258259345a32ea27981d1fb34a975195030cf5950fbe70a6aae52479abc2262cb448a25ab8473fd5ae27cd40bec39198bc581c03b92cbd287eeede187b55817dbf2a1ef11815951a481ee511dade7047bb6f955c8acdda644ad249381a760eb844ea3cb1fbb9e2967e0d40a96b7a555a72648634924f03c0c6a6e28647a5ba9c5d2f9f93848b3e9e1c2bb60d61517704cd4bb343b7bfb6ab9070de0b86df83d448a78f340f624dfb5d7564121ab9a8248695a918c01d532548207431a35fdc2ea9f17a972ddb1a6cf164cab42027326fd305910e884dd5b2dd69a924751e6aacf2f177ad586ed24cc8eb7772348f499001d18549321a13ee1967414f4abe3ed6937ff8482725b9afe9bc55a5357be228f6aabcea4aab5f6d2a263f64600816f377ded09e6f1db09b8baa30755ba56d002a68298713ece4e952e653bed21bb9b07e7a71d9ec7b3b95cbc
                  [grant_type] => authorization_code
                  [redirect_uri] => https://houseforest.ru/
              )
      
          [4] => 
      )
      
      [2023-09-26 10:58:07] (ERROR @ /home/d/dreamt74/dreamt74.beget.tech/public_html/core/components/amocrm/model/amocrm/controllers/auth.php : 38) [amoCRM] Auth error
      При выполнении данного скрипта так же возникает ошибка:
      [2023-09-26 11:01:24] (ERROR @ /home/d/dreamt74/dreamt74.beget.tech/public_html/core/components/amocrm/model/amocrm/amocrmtools.class.php : 487)
      Array
      (
          [0] => [AmoCrm] Ошибка запроса
          [1] => Undefined error Код ошибки: 0
          [2] => https://https://houseforest.amocrm.ru.amocrm.ru/oauth2/access_token
          [3] => Array
              (
                  [client_id] => 154488b4-a0c4-442b-8e80-c25d123a9ba3
                  [client_secret] => 5Wnwafs7TS1Shayn2nj1cQ5fw7tsQ8cD3Z5D6UTwpIQrWPCJrVcOqKlGRueGcGVD
                  [code] => def502002497f2a7a9d513c07d6026dfd234585d031cdc706c60ffdc842a95b68e6aca2b48203648a145cc2d3a39650877cb2600c5cda61589e109496f22ea95b7bf14c1539b3f16812f5e18a0a036dc51926d30b0ca1120eee880822f27166f0ca232d5d92c6ff35075a3d8c47eb1678dd00de47f7fce150b94ec6bab42a64353e22654ed1000f8f548069d2a83cf26c49cc27f0ad62bd9505056560cc258259345a32ea27981d1fb34a975195030cf5950fbe70a6aae52479abc2262cb448a25ab8473fd5ae27cd40bec39198bc581c03b92cbd287eeede187b55817dbf2a1ef11815951a481ee511dade7047bb6f955c8acdda644ad249381a760eb844ea3cb1fbb9e2967e0d40a96b7a555a72648634924f03c0c6a6e28647a5ba9c5d2f9f93848b3e9e1c2bb60d61517704cd4bb343b7bfb6ab9070de0b86df83d448a78f340f624dfb5d7564121ab9a8248695a918c01d532548207431a35fdc2ea9f17a972ddb1a6cf164cab42027326fd305910e884dd5b2dd69a924751e6aacf2f177ad586ed24cc8eb7772348f499001d18549321a13ee1967414f4abe3ed6937ff8482725b9afe9bc55a5357be228f6aabcea4aab5f6d2a263f64600816f377ded09e6f1db09b8baa30755ba56d002a68298713ece4e952e653bed21bb9b07e7a71d9ec7b3b95cbc
                  [grant_type] => authorization_code
                  [redirect_uri] => https://houseforest.ru/
              )
      
          [4] => 
      )
        Николай Савин
        26 сентября 2023, 11:09
        0
        Ссылка вида houseforest.amocrm.ru.amocrm.ru ничем не смущает?
          Константин
          26 сентября 2023, 12:16
          0
          Сергей подсказал решение, сработало, но теперь ошибка с кодом 400
          Сергей
          26 сентября 2023, 12:07
          0
          В настройках amo компонента, в параметре «amocrm_account», пропиши просто — houseforest
            Константин
            26 сентября 2023, 12:16
            0
            Спасибо, теперь в консоли другая ошибка
            [2023-09-26 12:14:19] (ERROR @ /home/d/dreamt74/dreamt74.beget.tech/public_html/core/components/amocrm/model/amocrm/amocrmtools.class.php : 487) Array
            (
                [0] => [AmoCrm] Ошибка запроса
                [1] => Bad request Код ошибки: 400
                [2] => https://houseforest.amocrm.ru/oauth2/access_token
                [3] => Array
                    (
                        [client_id] => 154488b4-a0c4-442b-8e80-c25d123a9ba3
                        [client_secret] => 5Wnwafs7TS1Shayn2nj1cQ5fw7tsQ8cD3Z5D6UTwpIQrWPCJrVcOqKlGRueGcGVD
                        [code] => def502002497f2a7a9d513c07d6026dfd234585d031cdc706c60ffdc842a95b68e6aca2b48203648a145cc2d3a39650877cb2600c5cda61589e109496f22ea95b7bf14c1539b3f16812f5e18a0a036dc51926d30b0ca1120eee880822f27166f0ca232d5d92c6ff35075a3d8c47eb1678dd00de47f7fce150b94ec6bab42a64353e22654ed1000f8f548069d2a83cf26c49cc27f0ad62bd9505056560cc258259345a32ea27981d1fb34a975195030cf5950fbe70a6aae52479abc2262cb448a25ab8473fd5ae27cd40bec39198bc581c03b92cbd287eeede187b55817dbf2a1ef11815951a481ee511dade7047bb6f955c8acdda644ad249381a760eb844ea3cb1fbb9e2967e0d40a96b7a555a72648634924f03c0c6a6e28647a5ba9c5d2f9f93848b3e9e1c2bb60d61517704cd4bb343b7bfb6ab9070de0b86df83d448a78f340f624dfb5d7564121ab9a8248695a918c01d532548207431a35fdc2ea9f17a972ddb1a6cf164cab42027326fd305910e884dd5b2dd69a924751e6aacf2f177ad586ed24cc8eb7772348f499001d18549321a13ee1967414f4abe3ed6937ff8482725b9afe9bc55a5357be228f6aabcea4aab5f6d2a263f64600816f377ded09e6f1db09b8baa30755ba56d002a68298713ece4e952e653bed21bb9b07e7a71d9ec7b3b95cbc
                        [grant_type] => authorization_code
                        [redirect_uri] => https://houseforest.ru/
                    )
            
                [4] => Array
                    (
                        [hint] => Redirect URI is not associated with client
                        [title] => Некорректный запрос
                        [type] => https://developers.amocrm.ru/v3/errors/OAuthProblemJson
                        [status] => 400
                        [detail] => В запросе отсутствует ряд параметров или параметры невалидны
                    )
            
            )
              Николай Савин
              26 сентября 2023, 12:28
              0
              Посмотрите, пожалуйста, в документацию вот сюда
                Константин
                26 сентября 2023, 12:53
                0
                404 Not Found!
                  Николай Савин
                  26 сентября 2023, 12:55
                  0
                  Не то вставил ))
                  Исправил ссылку.
                    Константин
                    26 сентября 2023, 14:05
                    0
                    И почему-то журнал ошибок кишит такими ошибками, хотя отправка формы производится 1 раз…
                    Константин
                    26 сентября 2023, 13:22
                    0
                    Все проделал по пунктам, такая ошибка сейчас, похоже та же самая…
                    [2023-09-26 13:21:14] (ERROR @ /home/d/dreamt74/dreamt74.beget.tech/public_html/core/components/amocrm/model/amocrm/amocrmtools.class.php : 487) Array
                    (
                        [0] => [AmoCrm] Ошибка запроса
                        [1] => Bad request Код ошибки: 400
                        [2] => https://houseforest.amocrm.ru/oauth2/access_token
                        [3] => Array
                            (
                                [client_id] => 154488b4-a0c4-442b-8e80-c25d123a9ba3
                                [client_secret] => 5Wnwafs7TS1Shayn2nj1cQ5fw7tsQ8cD3Z5D6UTwpIQrWPCJrVcOqKlGRueGcGVD
                                [code] => def5020096aa491fa204bf53ee35ac5b8e1af5b1d6b8bd132a557cae0c2fdabec21d4374fd58a07b7e3dc3c7cec5771b9ddc0de534f4273f79cb48f7cb4debe366b05d34904cf2823bd3ea0326babd5d6720f5936d1839915f08b52b7b3c59d9df25483e558f103047f48566f8fc52f5c09ef71f04f6e8424d9e94808e25b2bed0fc44606c927e1f8e9d8999fa91839d8624e193b7e3b518db7c99e8d197a4a6cd6e1e67fae626b395edee3dc31a6c4c56c83b2e3d59941261a021e8a47dc84921e985048d5eca4c405232fb30fe294498942c32bd4460a73860800d76f3b07bb2af6d226f477f9cd61867b63dbb7588a947370a479f380597b6415e310b85b942f18cb50f0df2eb0206a254a8ec9fc3977613155d8ddfa216ff20dd6422753655f5bf4afd4fd80ceeecc5795d0e2a2b4f5425cbfee51ac3b4fc3b908d0b74b5c7fe6497bf97c7915224a17b9ff4ecb00e7b50b723bee2839e8d03fe83c08234e38691ba5341318858ff43af9c8a983a518c6a09674c2deb80f9fedd9d418ddcdb4d376d394fbd5b37ae965c5344d065649367ce898e0d1d0d24bf535de4458c1d23c8481b71f314b4e7e812280fc6e7b1934f29cbd6809bf8293728e66cde3cb0073130f900ff16e0ee045350776fa0b9c981695fcb96dc1bd896bd0f48cad374978fa76ce4c656e2
                                [grant_type] => authorization_code
                                [redirect_uri] => https://houseforest.ru/
                            )
                    
                        [4] => Array
                            (
                                [hint] => Redirect URI is not associated with client
                                [title] => Некорректный запрос
                                [type] => https://developers.amocrm.ru/v3/errors/OAuthProblemJson
                                [status] => 400
                                [detail] => В запросе отсутствует ряд параметров или параметры невалидны
                            )
                    
                    )
                  Сергей
                  26 сентября 2023, 12:34
                  0
                  Эта ошибка возникает в любой непонятной ситуации. Возможно токен отвалился. Попробуй заново сгенерировать ключ
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            14