Немного о интеграции с CRM AMO

15.11.19

Интеграция - WEB-интеграция

Немного информации о том, как настроить интеграцию с CRM AMO. Пример функций для подключения к АМО и обновления заказа. Пример на основе API авторизации.

Удобно, когда из одного места можно контролировать обмен с клиентами по множеству каналов связи. Какая-то двусмысленная фраза получилась ))) Поясню) Речь идет, конечно же, про АМО CRM. Годы идут, реклама рекламирует, директора и руководящий состав всё это впитывают, они (АМО) растут, у них появилось довольно неплохое API, а после недавних изменений OAUTH 2.0 (об этом подробнее в другой :-) ). Как с ним работать? Да легко)

Для начала создадим функцию для подключения:

Функция Подключение() Экспорт
	HTTPСоединение = Новый HTTPСоединение("XXX.amocrm.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL());
	HTTPЗапрос = Новый HTTPЗапрос("/private/api/auth.php"); 
	HTTPЗапрос.Заголовки.Вставить("Content-type", "application/x-www-form-urlencoded");
	HTTPЗапрос.Заголовки.Вставить("USERAGENT", "amoCRM-API-client/1.0");
	HTTPЗапрос.Заголовки.Вставить("SSL_VERIFYPEER", 0);
	HTTPЗапрос.Заголовки.Вставить("SSL_VERIFYHOST", 0);		
	HTTPЗапрос.УстановитьТелоИзСтроки("USER_LOGIN=***ЛОГИН АМО***&USER_HASH=***ХЕШ ПАРОЛЬ***", КодировкаТекста.UTF8, ИспользованиеByteOrderMark.Авто);
    Попытка
		Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
		Куки = Ответ.Заголовки.Получить("Set-Cookie");
		Возврат Куки
	исключение
		сообщить("Не смог подключиться к Amo!", СтатусСообщения.ОченьВажное);
		Возврат Неопределено
	КонецПопытки;
КонецФункции 

В итоге у нас будет ключик. Он нам и нужен ) Теперь, если мы что то хотим сделать, нам не нужно каждый раз авторизовываться.

Например, мы хотим обновить заказ в АМО:


//ЗаказСсылка - ссылка на заказ, или массив заказов, если нужно несколько за раз отправить
//Подключение - наши ранее созданные куки подключением
//Транзакция - уникальный идентификатор, где то созданный ранее для удобного ведения/чтения логов
Функция ОбновитьЗаказ(ЗаказСсылка, Подключение = Неопределено, Транзакция="")	
	Если Подключение = Неопределено тогда
		Куки = Подключение();
	иначе
		Куки = Подключение;
	КонецЕсли;   
	Если Куки = Неопределено тогда
		Возврат Неопределено //какие то проблемы с подключением
	КонецЕсли; 		
	ВремФайл = ПолучитьИмяВременногоФайла("json");
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.ОткрытьФайл(ВремФайл, "UTF-8");
	ЗаписьJSON.ЗаписатьНачалоОбъекта();
	ЗаписьJSON.ЗаписатьИмяСвойства("update");
	ЗаписьJSON.ЗаписатьНачалоМассива();
	Если ТипЗнч(ЗаказСсылка) = Тип("ДокументСсылка.ЗаказПокупателя") тогда
		ДобавитьВМассив(ЗаписьJSON,ЗаказСсылка, Транзакция);//Заполняем телом заказа
	иначеЕсли ТипЗнч(ЗаказСсылка) = Тип("Массив") тогда
		для чч=0 по ЗаказСсылка.Количество()-1 цикл
			ДобавитьВМассив(ЗаписьJSON,ЗаказСсылка[чч], Транзакция); //Заполняем телами заказов
		КонецЦикла; 
	КонецЕсли; 
	ЗаписьJSON.ЗаписатьКонецМассива();
	ЗаписьJSON.ЗаписатьКонецОбъекта();
	ЗаписьJSON.УстановитьСтроку();
	ЗаписьJSON.Закрыть();
	Текст = Новый ТекстовыйДокумент;
	Текст.Прочитать(ВремФайл, "UTF-8");
	СтрокаJSON = Текст.ПолучитьТекст();
	HTTPСоединение = Новый HTTPСоединение("XXX.amocrm.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL());
	HTTPЗапрос = Новый HTTPЗапрос("/api/v2/leads"); ///api/v2/leads
	HTTPЗапрос.Заголовки.Вставить("RETURNTRANSFER", Истина);
	HTTPЗапрос.Заголовки.Вставить("USERAGENT", "amoCRM-API-client/1.0");
	HTTPЗапрос.Заголовки.Вставить("URL", "https://XXX.amocrm.ru/api/v2/leads");
	HTTPЗапрос.Заголовки.Вставить("CUSTOMREQUEST", "POST");
	HTTPЗапрос.Заголовки.Вставить("POSTFIELDS", КодироватьСтроку(СтрокаJSON,СпособКодированияСтроки.КодировкаURL));
	HTTPЗапрос.Заголовки.Вставить("HEADER", Ложь);
	HTTPЗапрос.Заголовки.Вставить("Cookie", Куки);
	HTTPЗапрос.Заголовки.Вставить("SSL_VERIFYPEER", 0);
	HTTPЗапрос.Заголовки.Вставить("SSL_VERIFYHOST", 0);		
	HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.Авто);
	Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
	Если Ответ.КодСостояния = 200 тогда
		ЧтениеJSON = Новый ЧтениеJSON;
		ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку("UTF-8"));
		ОтветВСтруктуре1С = ПрочитатьJSON(ЧтениеJSON);
		Если ОтветВСтруктуре1С<>Неопределено тогда
			Возврат ОтветВСтруктуре1С._embedded.items[0].id;
		иначе
			Возврат Ложь // подключились, но что то пошло не так
		КонецЕсли; 		
	иначе
		Возврат Ложь // подключились, но что то пошло не так
	КонецЕсли; 			
КонецФункции

Вот и пригодились куки) А если в первый раз вызывается функция обновления заказа, ну ничего, вызовется функция подключения.

Код сокращен до минимума из первоначального моего варианта, чисто показать пример, кое что, кое где в этом варианте уже не очень логично.

Всем удачи! )

АМО интеграция обмен WEB

См. также

Модуль для обмена "1С:Предприятие 8. УАТ. ПРОФ" с FortMonitor

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ 3. Отчеты по данным загруженным в регистры сведений. Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен.

11856 руб.

25.05.2021    11753    9    4    

8

Интеграция с сервисом vetmanager

WEB-интеграция Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Данная обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.

6000 руб.

02.02.2021    14453    34    43    

19

Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС

Обмен с ГосИС WEB-интеграция Платформа 1С v8.3 Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

2400 руб.

28.04.2016    85164    142    211    

297

Прайс-лист с фотографиями, выгрузкой в Excel с подсчетом суммы заказа, загрузкой заказа в Управление торговлей 11 (Россия) и Управление торговлей для Беларуси 3

Прайсы Загрузка и выгрузка в Excel Оптовая торговля WEB-интеграция Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Россия Управленческий учет Платные (руб)

Прайс-лист для программы 1С: Управление торговлей 11 и Управление торговлей для Беларуси 3, позволяющий: 1) Формировать прайс-лист с фотографиями; 2) Сохранить прайс-лист в Excel с формулами, подсчитывающими количество и сумму заказа; 3) Передать сформированный прайс-лист по каналу ftp на сайт; 4) Сохранить прайс-лист в формате CSV; 5) Загрузить сделанный по прайс-листу заказ обратно в программу.

6000 руб.

04.09.2014    120809    44    105    

53

Sync1C: Синхронизация 1С и OpenCart

WEB-интеграция Оптовая торговля Розничная торговля Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Внешняя обработка для обмена данными с интернет-магазином OpenCart. Позволяет быстро наполнить магазин товарами, затем обновлять цены и добавлять новые товары. Далее можно средствами OpenCart настраивать и дополнять карточки товаров как надо для магазина, при этом связь товаров с 1С не теряется.

3840 руб.

30.03.2018    41863    77    133    

81

Merlion Commander Версия 1.3.9.2 - июль 2022 г. (Интеграция с 1С: УT, редакция 11.4, 1С:Розница 2.3,1С:ERP Управление предприятием 2, УТ 10.3, редакция веб-сервиса MERLION API 3.0 от 18.08.2021)

Оптовая торговля Розничная торговля WEB-интеграция Платформа 1С v8.3 1С:Управление торговлей 11 Россия Платные (руб)

Расширении конфигурации "Управление торговлей, редакция 11" для работы с веб-сервисом Мерлион с помощью Merlion API. Расширение и набор подключаемых дополнительных обработок позволяет без изменения конфигурации получить возможность работы с API крупнейшего российского дистрибьютора http://merlion.com. Логика работы максимально приближена к работе веб-сервиса b2b. Вы сможете создать и исправить заказ, зарезервировать товар прямо из 1С, посмотреть актуальные остатки и цены, импортировать штрихкода EAN13 товаров, загружать заказ c автоматическим созданием номенклатуры в 1С и корректности создания. Можно выбирать характеристики по товарным группам и загружать товар с выбранными характеристиками, загружать изображения товара. Не требуется установки дополнительного ПО для работы с веб-сервисом. Кроссплатформенное решение для ОС Windows и Linux. Весь код модулей открыт и доступен для просмотра и внесения изменений.

8280 руб.

02.05.2017    37379    40    45    

47
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. xxxAndricxxx 64 15.11.19 10:29 Сейчас в теме
Вместо XXX.amocrm.ru указываете Ваш домен на амо
2. denic73 15.11.19 10:50 Сейчас в теме
А разве не "..Механизм oAuth авторизации пришел на смену устаревшему механизму API-ключей пользователей" ? И метод и адрес ресурса авторизации - POST /oauth2/access_token
3. xxxAndricxxx 64 15.11.19 11:00 Сейчас в теме
(2) да вроде "разве не" )) можно и так ))
4. denic73 15.11.19 11:04 Сейчас в теме
(3) по вашему методу новые пользователи, которые решат создать интеграцию, уже не авторизуются, потому как API ключа им уже не предоставляют. А есть у них client_id и client_secret для получения токенов.
xxxAndricxxx; +1 Ответить
5. xxxAndricxxx 64 15.11.19 11:15 Сейчас в теме
(4) ок, ну значит не всем подходит способ ) в принципе там не много переделать ) как нибудь расскажу с учетом Вашей поправки, спасибо )
6. Region102 18.11.19 08:41 Сейчас в теме
Лучше один раз увидеть https://www.youtube.com/watch?v=hDbZJFSARhU&list=PLkvJd0RKh5mn_BAUSplPBXrTLSeFgyNvP чем 100 раз прочитать )
maksa2005; AlbinaAAA; serg-lom89; bobnonga; RustIG; +5 Ответить
7. daab 02.12.20 20:34 Сейчас в теме
(6) уже не актуально
с 1 июля 2020 amocrm убрали апи ключ из профиля пользователя, предлагая перейти на авторизацию oauth.
9. Region102 03.12.20 17:10 Сейчас в теме
(7) Уже есть более актуальное видео на эту же тему https://infostart.ru/video/w1251268/
10. paxan 09.02.21 16:38 Сейчас в теме
(9)ссылка битая
11. romankoav 4 01.03.21 23:33 Сейчас в теме
(10) не битая от того же автора https://www.youtube.com/watch?v=KaS3drB1i4Y
Bassgood; cheburashka; +2 Ответить
12. paxan 17.03.21 14:35 Сейчас в теме
(11)Спасибо за ссылку.
8. пользователь 02.12.20 21:12
Сообщение было скрыто модератором.
...
13. acesdjazzz999 20.06.23 15:26 Сейчас в теме
Вопрос на засыпку. Нет у меня сайта с SSL, а интеграцию с 1С хочется.
Что указывать в Редиректе URI при создании интеграции в amo?
Оставьте свое сообщение