amocrm-js
JS Library for AmoCRM
Last updated 2 months ago by useful-web .
ISC · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install amocrm-js 
SYNC missed versions from official npm registry.

AmoCRM

Javascript библиотека для работы с AmoCRM

Подключение к CRM

const AmoCRM = require( 'amocrm-js' );

const crm = new AmoCRM({
    // логин пользователя в портале, где адрес портала domain.amocrm.ru
    domain: 'domain', // может быть указан полный домен вида domain.amocrm.ru, domain.amocrm.com
    auth: {
        login: 'mylogin',
        hash: 'mytesthash', // API-ключ доступа
    }
});

// Вход в портал
crm.connect().then(() => {
  console.log( `Вход в портал осуществлён` );
})
.catch( e => {
  console.log( 'Ошибка входа', e );
});

Выход из портала

Метод disconnect() позволяет выйти из портала. Он выключает таймер проверки времени истечения сессии.

crm.disconnect();

Свободный запрос к CRM

// Получить данные по аккаунту (GET-запрос)
crm.request
.get( '/api/v2/account' )
.then( data => {
    console.log( 'Полученные данные', data );
})
.catch( e => {
    console.log( 'Произошла ошибка', e );
})

// Создать новый контакт (POST-запрос)
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 // манипуляции с контактами

Каждая из фабрик имеет методы для множественных операций со сделками:

// Поиск сделок по критерию, возвращает [ Lead, Lead, ... ]
crm.Lead.find( criteria );
// Добавление сделок
crm.Lead.insert([
     {
         name: "Walter White",
         request_id: 143,
         // другие поля ...
     }
 ]);
// Обновление сделок
crm.Lead.update([
    {
        id: 1234
        name: "Walter White",
        request_id: 143,
        // другие поля ...
    }
]);

// Возвращает Lead
crm.Lead.findById( id );

Сделки

// новая сделка
const lead = new crm.Lead;
lead.linked_company_id = 1245;
lead.updated_at = 12345678;
lead.price = 10000;

lead.save(); // вернёт Promise
// альтернативный вариант 1
const lead = new crm.Lead({
    linked_company_id: 1245,
    updated_at: 12345678,
    price: 10000
});
lead.save();

// альтернативный вариант 2
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());

Переподключение

Переподключение к порталу в случае истечения сессии (15 минут бездействия или истечение cookie-файла в течение 2 лет) происходит автоматически.

Работа с событиями

В настоящий момент доступны следующие события:

  1. connection:beforeReconnect
  2. connection:beforeConnect
  3. connection:checkReconnect
  4. connection:authError
  5. connection:connected
  6. connection:disconnected
  7. 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();

Current Tags

  • 1.0.17                                ...           latest (2 months ago)

18 Versions

  • 1.0.17                                ...           2 months ago
  • 1.0.16                                ...           2 months ago
  • 1.0.15                                ...           3 months ago
  • 1.0.14                                ...           3 months ago
  • 1.0.13                                ...           3 months ago
  • 1.0.12                                ...           3 months ago
  • 1.0.11                                ...           3 months ago
  • 1.0.10                                ...           6 months ago
  • 1.0.9                                ...           6 months ago
  • 1.0.8                                ...           6 months ago
  • 1.0.7                                ...           6 months ago
  • 1.0.6                                ...           8 months ago
  • 1.0.5                                ...           8 months ago
  • 1.0.4                                ...           9 months ago
  • 1.0.2                                ...           a year ago
  • 1.0.1                                ...           a year ago
  • 1.0.0                                ...           a year ago
  • 0.0.1                                ...           3 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 1
Last Day 0
Last Week 1
Last Month 1
Dependencies (3)
Dev Dependencies (6)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |