{"id":23527150,"url":"https://github.com/mobilon-dev/amotop","last_synced_at":"2026-04-25T23:37:11.297Z","repository":{"id":227788118,"uuid":"772394816","full_name":"mobilon-dev/amotop","owner":"mobilon-dev","description":"@mobilon-dev/amotop - еще один amoCRM API клиент для node.js","archived":false,"fork":false,"pushed_at":"2025-08-06T16:30:58.000Z","size":1780,"stargazers_count":9,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-06T18:28:39.752Z","etag":null,"topics":["amo","amocrm","npm"],"latest_commit_sha":null,"homepage":"https://mobilon-dev.github.io/amotop/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mobilon-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-03-15T05:26:12.000Z","updated_at":"2025-08-06T16:31:02.000Z","dependencies_parsed_at":"2024-04-14T15:44:05.986Z","dependency_job_id":"5ab54e7a-761a-42c9-921f-ac826418a57a","html_url":"https://github.com/mobilon-dev/amotop","commit_stats":null,"previous_names":["mobilon-org/amotop","mobilon-dev/amotop"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/mobilon-dev/amotop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mobilon-dev%2Famotop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mobilon-dev%2Famotop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mobilon-dev%2Famotop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mobilon-dev%2Famotop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mobilon-dev","download_url":"https://codeload.github.com/mobilon-dev/amotop/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mobilon-dev%2Famotop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32280980,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"ssl_error","status_checked_at":"2026-04-25T18:29:32.149Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amo","amocrm","npm"],"created_at":"2024-12-25T20:12:24.155Z","updated_at":"2026-04-25T23:37:11.285Z","avatar_url":"https://github.com/mobilon-dev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @mobilon-dev/amotop\n\n[![npm version](https://badge.fury.io/js/%40mobilon-dev%2Famotop.svg)](https://badge.fury.io/js/%40mobilon-dev%2Famotop)\n[![License: ISC](https://img.shields.io/badge/License-ISC-blue.svg)](https://opensource.org/licenses/ISC)\n\nПолнофункциональный TypeScript клиент для работы с amoCRM API, включающий поддержку основного API, Chat API, File API и OAuth 2.0 аутентификации.\n\n## 📚 Документация\n\n- [📖 Полная документация](https://mobilon-dev.github.io/amotop/)\n- [💡 Примеры использования](samples/index.md)\n- [🔗 Репозиторий](https://github.com/mobilon-dev/amotop)\n\n## 🎥 Видеоуроки\n\n- [🎬 Знакомство с @mobilon-dev/amotop](https://youtu.be/zRlO7e41bwg)\n- [🔐 amoCRM OAuth 2.0](https://youtu.be/CxQcB5AsyHI)\n- [💬 amoCRM Chat API](https://youtu.be/f31UVtn7EJI)\n- [📁 amoCRM File API](https://youtu.be/3DLbkBt7kHw)\n\n## ✨ Особенности\n\n- **🚀 Простота использования** - Интуитивно понятный API с подробным логированием\n- **🔧 TypeScript поддержка** - Полная типизация для лучшего DX\n- **📊 Подробное логирование** - Все запросы и ответы логируются для отладки\n- **💬 Chat API интеграция** - Работа с чатами amoCRM\n- **📁 File API поддержка** - Загрузка и управление файлами\n- **🔐 OAuth 2.0** - Безопасная аутентификация\n- **📝 Webhook поддержка** - Работа с вебхуками amoCRM\n\n## 🛠 Установка\n\n```bash\nnpm install @mobilon-dev/amotop\n```\n\n## 🚀 Быстрый старт\n\n### 1. Настройка конфигурации\n\nСоздайте файл конфигурации `config.js`:\n\n```javascript\nmodule.exports = {\n  domain: 'your-domain.amocrm.ru',\n  accessToken: 'your-access-token',\n  scopeId: 'your-scope-id',\n  channelSecret: 'your-channel-secret',\n  debug: true\n};\n```\n\n### 2. Базовое использование\n\n```javascript\nconst { AmoApiClient, AmoJoScopeClient } = require('@mobilon-dev/amotop');\n\nconst config = require('./config');\n\n// Инициализация клиентов\nconst amoApiClient = new AmoApiClient(config.domain, config.accessToken, { debug: config.debug });\nconst amoJoScopeClient = new AmoJoScopeClient({\n  scopeId: config.scopeId, \n  channelSecret: config.channelSecret, \n  debug: config.debug\n});\n\n// Получение сделок\nconst leads = await amoApiClient.getLeads({ limit: 20 });\n\n// Отправка сообщения в чат\nconst message = {\n  text: 'Привет! Это тестовое сообщение.',\n  source: 'bot'\n};\nconst response = await amoJoScopeClient.sendMessage(message);\n```\n\n## 🏗 Архитектура\n\n![Архитектура проекта](images/scheme.jpg)\n\n### Основные компоненты\n\n| Компонент | Назначение | Конфигурация |\n|-----------|------------|--------------|\n| **AmoService** | Обмен токенов OAuth 2.0 | `domain` |\n| **AmoApiClient** | Основной API amoCRM | `domain`, `accessToken` |\n| **AmoFileClient** | File API amoCRM | `accessToken` |\n| **AmoJoChannelClient** | Управление каналами Chat API | `channelId`, `channelSecret` |\n| **AmoJoScopeClient** | Работа с подключениями чатов | `scopeId`, `channelSecret` |\n\n## 📋 Примеры использования\n\n### Работа со сделками\n\n```javascript\n// Добавление сделки\nconst lead = {\n  name: 'Продать слона',\n  price: 1000,\n  ...amoApiClient.getPipelineLeadPayload(7183562, 60002878)\n};\nconst newLead = await amoApiClient.addLead(lead);\n\n// Получение сделок с фильтрацией\nconst leads = await amoApiClient.getLeads({\n  limit: 50,\n  filter: {\n    responsible_user_id: [12345]\n  }\n});\n```\n\n### Работа с контактами\n\n```javascript\n// Добавление контакта\nconst contact = {\n  name: 'Иван Иванов',\n  phone: '+79001234567',\n  email: 'ivan@example.com'\n};\nconst newContact = await amoApiClient.addContact(contact);\n\n// Получение всех контактов\nconst contacts = await amoApiClient.getAllContacts();\n```\n\n### Работа с чатами\n\n```javascript\n// Отправка текстового сообщения\nawait amoJoScopeClient.sendTextMessage({\n  text: 'Привет! Чем могу помочь?',\n  source: 'bot'\n});\n\n// Отправка изображения\nawait amoJoScopeClient.sendImageMessage({\n  image: 'https://example.com/image.jpg',\n  caption: 'Описание изображения',\n  source: 'bot'\n});\n```\n\n### Работа с файлами\n\n```javascript\nconst { AmoFileClient } = require('@mobilon-dev/amotop');\n\nconst fileClient = new AmoFileClient(accessToken, { debug: true });\n\n// Загрузка файла\nconst uploadResult = await fileClient.uploadFile({\n  file: './document.pdf',\n  name: 'document.pdf'\n});\n\n// Привязка файла к сделке\nawait amoApiClient.attachFileToLead(leadId, uploadResult.id);\n```\n\n## 🔧 Настройка OAuth 2.0\n\n```javascript\nconst { AmoService } = require('@mobilon-dev/amotop');\n\nconst amoService = new AmoService('your-domain.amocrm.ru');\n\n// Получение URL для авторизации\nconst authUrl = amoService.getAuthUrl({\n  clientId: 'your-client-id',\n  redirectUri: 'your-redirect-uri',\n  state: 'random-state'\n});\n\n// Обмен кода на токен\nconst tokens = await amoService.exchangeCode({\n  clientId: 'your-client-id',\n  clientSecret: 'your-client-secret',\n  code: 'authorization-code',\n  redirectUri: 'your-redirect-uri'\n});\n```\n\n## 📊 Логирование\n\nБиблиотека автоматически логирует все запросы и ответы при включенном режиме debug:\n\n```\n[AmoApiClient][Request] GET https://domain.amocrm.ru/api/v4/leads?page=1\u0026limit=20\n[AmoApiClient][Response] GET https://domain.amocrm.ru/api/v4/leads?page=1\u0026limit=20 200:OK\n```\n\n## 🔗 Полезные ссылки\n\n- [📖 amoCRM API документация](https://www.amocrm.ru/developers/content/crm_platform/api-reference)\n- [💬 Chat API документация](https://www.amocrm.ru/developers/content/chats/chat-api-reference)\n- [📁 Files API документация](https://www.amocrm.ru/developers/content/files/files-capabilities)\n\n## 🤝 Поддержка\n\nЕсли у вас есть вопросы или предложения:\n\n1. Создайте [Issue](https://github.com/mobilon-dev/amotop/issues) в репозитории\n2. Изучите [примеры](samples/index.md) для решения типичных задач\n3. Обратитесь к [документации](https://mobilon-dev.github.io/amotop/)\n\n## 📄 Лицензия\n\nISC License - см. файл [LICENSE](LICENSE) для подробностей.\n\n---\n\n**Создано с ❤️ для упрощения работы с amoCRM API**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmobilon-dev%2Famotop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmobilon-dev%2Famotop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmobilon-dev%2Famotop/lists"}