AmoCRM
Javascript библиотека для работы с AmoCRM
Подключение к CRM
const AmoCRM = require( 'amocrm-js' );
const crm = new AmoCRM({
domain: 'domain',
auth: {
login: 'mylogin',
hash: 'mytesthash',
}
});
crm.connect().then(() => {
console.log( `Вход в портал осуществлён` );
})
.catch( e => {
console.log( 'Ошибка входа', e );
});
Выход из портала
Метод disconnect() позволяет выйти из портала.
Он выключает таймер проверки времени истечения сессии.
crm.disconnect();
Свободный запрос к CRM
crm.request
.get( '/api/v2/account' )
.then( data => {
console.log( 'Полученные данные', data );
})
.catch( e => {
console.log( 'Произошла ошибка', e );
})
crm.request
.post( '/api/v2/contacts', {
add: [
{
name: "Walter White",
request_id: 143,
}
]
})
.then( data => {
console.log( 'Полученные данные', data );
})
.catch( e => {
console.log( 'Произошла ошибка создания контакта', e );
})
Фабрики
В настоящий момент доступны следующие фабрики:
crm.Lead
crm.Contact
Каждая из фабрик имеет методы для множественных операций со сделками:
crm.Lead.find( criteria );
crm.Lead.insert([
{
name: "Walter White",
request_id: 143,
}
]);
crm.Lead.update([
{
id: 1234
name: "Walter White",
request_id: 143,
}
]);
crm.Lead.findById( id );
Сделки
const lead = new crm.Lead;
lead.linked_company_id = 1245;
lead.updated_at = 12345678;
lead.price = 10000;
lead.save();
const lead = new crm.Lead({
linked_company_id: 1245,
updated_at: 12345678,
price: 10000
});
lead.save();
const lead = crm.Lead.of({
linked_company_id: 1245,
updated_at: 12345678,
price: 10000
});
lead.save();
lead.name = "Заявка для Ивана";
lead.save();
crm.Lead.find({
status: 1
responsible_user_id: 34
})
.then( leads => {
console.log( "Найденное", leads );
})
crm.Lead.findById( 123 )
.then( lead => console.log( lead ));
Удаление сделок
Так как в официальном API данная возможность не документирована, лавка может в обозримом будущем прикрыться.
Тем не менее, есть возможность удалять сделки.
crm.Lead.remove([ 12345, 568944 ])
crm.Lead.findById( 123 )
.then( lead => lead.remove());
Переподключение
Переподключение к порталу в случае истечения сессии происходит автоматически.
Также доступны настройки:
const crm = new AmoCRM({
domain: 'domain',
auth: {
login: 'mylogin',
hash: 'mytesthash',
},
reconnection: {
disabled: true,
checkDelay: 500,
accuracyTime: 1000
}
});
Работа с событиями
В настоящий момент доступны следующие события:
- connection:beforeReconnect
- connection:beforeConnect
- connection:checkReconnect
- connection:authError
- connection:connected
- connection:disconnected
- connection:error
Добавление обработчика:
crm.on( 'connection:error', () => console.log( 'Ошибка соединения' ));
Удаление обработчика:
const handler = () => console.log( 'Ошибка соединения' );
crm.on( 'connection:error', handler );
crm.off( 'connection:error', handler );
crm.off( 'connection:error' );
crm.off();