AMO CRM - решение бага с получением токена авторизации.
Первое получение токена авторизации к компоненте AMO CRM пожалуй самый распространенная проблема, с которой сталкиваются все пользователи компонента.
Да действительно механизм первого подключения сайта к AMO CRM получился неудачным, еще на стадии архитектуры. Когда-нибудь я обязательно выпущу обновление, а пока хотел бы поделиться скриптом упрощающим жизнь.
Чтобы гарантировано подключиться к AMO CRM вам необходимо выполнить всего два пункта.
1. Корректно заполнить все системные настройки, указав все данные для интеграции. Это подробно описано в документации
2. Установите компонент modalConsole для выполнения PHP кода в админке и запустите один раз вот такой скрипт
Этот код обменивает код авторизации (который выдается на 20 минут) на постоянный токен авторизации, которым впоследствии будут подписаны все запросы в CRM.
Собственно на этом все. Система должна нормально работать. Заказы отправляются в CRM. А для отправки форм вам нужно добавтиь несколько параметров для ajaxForm согласно документации
Да действительно механизм первого подключения сайта к 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 согласно документации
Поблагодарить автора
Отправить деньги
Комментарии: 3
Спасибо большое, Николай, за решение! О нем мечтали, его ждали, про него спрашивали, потом его просили, и вот оно здесь!
P.S Столько обновлений здесь в последнее время, аж глаза разбегаются и такую ценную заметку банально не заметил… А может, потому что картинки в анонсе нет!? Но это не в укор, а просто попытка самоанализа.
P.S.2 А просто Console не подойдет? Просто он почти везде уже есть…
P.S Столько обновлений здесь в последнее время, аж глаза разбегаются и такую ценную заметку банально не заметил… А может, потому что картинки в анонсе нет!? Но это не в укор, а просто попытка самоанализа.
P.S.2 А просто Console не подойдет? Просто он почти везде уже есть…
Дим, лично для тебя разрешаю Console. Сам не пользуюсь ей давно.
Доброго времени суток! Вопрос по компоненту — amocrm.
у меня работает в режиме хука для Formit — ajaxform.
Проблема — не создается контакт в вмо, телефон пишется просто в доп полях, он приходит но контакта нет.
Создается на сколько я понял, только когда авторизован в modx.
Поковырял исходники. Там вроде как контакт создается на событие — OnUserFormSave (создание, обновление юзера).
Мне надо бы для анонимов сделать.
у меня работает в режиме хука для Formit — ajaxform.
Проблема — не создается контакт в вмо, телефон пишется просто в доп полях, он приходит но контакта нет.
Создается на сколько я понял, только когда авторизован в modx.
Поковырял исходники. Там вроде как контакт создается на событие — OnUserFormSave (создание, обновление юзера).
Мне надо бы для анонимов сделать.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.