https://github.com/mobilon-dev/amotop
@mobilon-dev/amotop - еще один amoCRM API клиент для node.js
https://github.com/mobilon-dev/amotop
amo amocrm npm
Last synced: about 2 months ago
JSON representation
@mobilon-dev/amotop - еще один amoCRM API клиент для node.js
- Host: GitHub
- URL: https://github.com/mobilon-dev/amotop
- Owner: mobilon-dev
- License: mit
- Created: 2024-03-15T05:26:12.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-08-06T16:30:58.000Z (10 months ago)
- Last Synced: 2025-08-06T18:28:39.752Z (10 months ago)
- Topics: amo, amocrm, npm
- Language: TypeScript
- Homepage: https://mobilon-dev.github.io/amotop/
- Size: 1.7 MB
- Stars: 9
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# @mobilon-dev/amotop
[](https://badge.fury.io/js/%40mobilon-dev%2Famotop)
[](https://opensource.org/licenses/ISC)
Полнофункциональный TypeScript клиент для работы с amoCRM API, включающий поддержку основного API, Chat API, File API и OAuth 2.0 аутентификации.
## 📚 Документация
- [📖 Полная документация](https://mobilon-dev.github.io/amotop/)
- [💡 Примеры использования](samples/index.md)
- [🔗 Репозиторий](https://github.com/mobilon-dev/amotop)
## 🎥 Видеоуроки
- [🎬 Знакомство с @mobilon-dev/amotop](https://youtu.be/zRlO7e41bwg)
- [🔐 amoCRM OAuth 2.0](https://youtu.be/CxQcB5AsyHI)
- [💬 amoCRM Chat API](https://youtu.be/f31UVtn7EJI)
- [📁 amoCRM File API](https://youtu.be/3DLbkBt7kHw)
## ✨ Особенности
- **🚀 Простота использования** - Интуитивно понятный API с подробным логированием
- **🔧 TypeScript поддержка** - Полная типизация для лучшего DX
- **📊 Подробное логирование** - Все запросы и ответы логируются для отладки
- **💬 Chat API интеграция** - Работа с чатами amoCRM
- **📁 File API поддержка** - Загрузка и управление файлами
- **🔐 OAuth 2.0** - Безопасная аутентификация
- **📝 Webhook поддержка** - Работа с вебхуками amoCRM
## 🛠 Установка
```bash
npm install @mobilon-dev/amotop
```
## 🚀 Быстрый старт
### 1. Настройка конфигурации
Создайте файл конфигурации `config.js`:
```javascript
module.exports = {
domain: 'your-domain.amocrm.ru',
accessToken: 'your-access-token',
scopeId: 'your-scope-id',
channelSecret: 'your-channel-secret',
debug: true
};
```
### 2. Базовое использование
```javascript
const { AmoApiClient, AmoJoScopeClient } = require('@mobilon-dev/amotop');
const config = require('./config');
// Инициализация клиентов
const amoApiClient = new AmoApiClient(config.domain, config.accessToken, { debug: config.debug });
const amoJoScopeClient = new AmoJoScopeClient({
scopeId: config.scopeId,
channelSecret: config.channelSecret,
debug: config.debug
});
// Получение сделок
const leads = await amoApiClient.getLeads({ limit: 20 });
// Отправка сообщения в чат
const message = {
text: 'Привет! Это тестовое сообщение.',
source: 'bot'
};
const response = await amoJoScopeClient.sendMessage(message);
```
## 🏗 Архитектура

### Основные компоненты
| Компонент | Назначение | Конфигурация |
|-----------|------------|--------------|
| **AmoService** | Обмен токенов OAuth 2.0 | `domain` |
| **AmoApiClient** | Основной API amoCRM | `domain`, `accessToken` |
| **AmoFileClient** | File API amoCRM | `accessToken` |
| **AmoJoChannelClient** | Управление каналами Chat API | `channelId`, `channelSecret` |
| **AmoJoScopeClient** | Работа с подключениями чатов | `scopeId`, `channelSecret` |
## 📋 Примеры использования
### Работа со сделками
```javascript
// Добавление сделки
const lead = {
name: 'Продать слона',
price: 1000,
...amoApiClient.getPipelineLeadPayload(7183562, 60002878)
};
const newLead = await amoApiClient.addLead(lead);
// Получение сделок с фильтрацией
const leads = await amoApiClient.getLeads({
limit: 50,
filter: {
responsible_user_id: [12345]
}
});
```
### Работа с контактами
```javascript
// Добавление контакта
const contact = {
name: 'Иван Иванов',
phone: '+79001234567',
email: 'ivan@example.com'
};
const newContact = await amoApiClient.addContact(contact);
// Получение всех контактов
const contacts = await amoApiClient.getAllContacts();
```
### Работа с чатами
```javascript
// Отправка текстового сообщения
await amoJoScopeClient.sendTextMessage({
text: 'Привет! Чем могу помочь?',
source: 'bot'
});
// Отправка изображения
await amoJoScopeClient.sendImageMessage({
image: 'https://example.com/image.jpg',
caption: 'Описание изображения',
source: 'bot'
});
```
### Работа с файлами
```javascript
const { AmoFileClient } = require('@mobilon-dev/amotop');
const fileClient = new AmoFileClient(accessToken, { debug: true });
// Загрузка файла
const uploadResult = await fileClient.uploadFile({
file: './document.pdf',
name: 'document.pdf'
});
// Привязка файла к сделке
await amoApiClient.attachFileToLead(leadId, uploadResult.id);
```
## 🔧 Настройка OAuth 2.0
```javascript
const { AmoService } = require('@mobilon-dev/amotop');
const amoService = new AmoService('your-domain.amocrm.ru');
// Получение URL для авторизации
const authUrl = amoService.getAuthUrl({
clientId: 'your-client-id',
redirectUri: 'your-redirect-uri',
state: 'random-state'
});
// Обмен кода на токен
const tokens = await amoService.exchangeCode({
clientId: 'your-client-id',
clientSecret: 'your-client-secret',
code: 'authorization-code',
redirectUri: 'your-redirect-uri'
});
```
## 📊 Логирование
Библиотека автоматически логирует все запросы и ответы при включенном режиме debug:
```
[AmoApiClient][Request] GET https://domain.amocrm.ru/api/v4/leads?page=1&limit=20
[AmoApiClient][Response] GET https://domain.amocrm.ru/api/v4/leads?page=1&limit=20 200:OK
```
## 🔗 Полезные ссылки
- [📖 amoCRM API документация](https://www.amocrm.ru/developers/content/crm_platform/api-reference)
- [💬 Chat API документация](https://www.amocrm.ru/developers/content/chats/chat-api-reference)
- [📁 Files API документация](https://www.amocrm.ru/developers/content/files/files-capabilities)
## 🤝 Поддержка
Если у вас есть вопросы или предложения:
1. Создайте [Issue](https://github.com/mobilon-dev/amotop/issues) в репозитории
2. Изучите [примеры](samples/index.md) для решения типичных задач
3. Обратитесь к [документации](https://mobilon-dev.github.io/amotop/)
## 📄 Лицензия
ISC License - см. файл [LICENSE](LICENSE) для подробностей.
---
**Создано с ❤️ для упрощения работы с amoCRM API**