Немного о интеграции с 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

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

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

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    15752    10    17    

11

Интеграция 1С — Битрикс24. Обмен задачами

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

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17560    6    15    

13

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

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

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

12000 руб.

02.02.2021    16365    42    49    

23

[Расширение] БОР-Навигатор.Культура

Зарплата Бюджетный учет WEB-интеграция Обмен с ГосИС Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Расширение конфигурации, включающее в себя объекты, необходимые для подготовки и сдачи отчета "Штатная численность" системы "БОР-Навигатор.Культура" в программе "1С:Зарплата и кадры государственного учреждения", редакция 3.1.

8400 руб.

01.02.2019    25746    9    0    

7

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

Обмен с ГосИС 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    88598    160    215    

318
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
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 Сейчас в теме
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 Сейчас в теме
8. пользователь 02.12.20 21:12
Сообщение было скрыто модератором.
...
13. acesdjazzz999 20.06.23 15:26 Сейчас в теме
Вопрос на засыпку. Нет у меня сайта с SSL, а интеграцию с 1С хочется.
Что указывать в Редиректе URI при создании интеграции в amo?
Оставьте свое сообщение