Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/max-kut/amocrm-widget-installer
Automatic installation of a widget in amoCRM
https://github.com/max-kut/amocrm-widget-installer
amocrm widget
Last synced: about 2 months ago
JSON representation
Automatic installation of a widget in amoCRM
- Host: GitHub
- URL: https://github.com/max-kut/amocrm-widget-installer
- Owner: max-kut
- Created: 2021-05-08T11:02:25.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2022-06-12T15:03:18.000Z (over 2 years ago)
- Last Synced: 2024-11-06T17:50:46.418Z (2 months ago)
- Topics: amocrm, widget
- Language: JavaScript
- Homepage:
- Size: 11.7 KB
- Stars: 5
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# amoCRM widget installer
Сервис, который упаковывает директорию в zip-архив и загружает в аккаунт amoCRM.
Если в amoCRM виджет не существует, он будет создан, иначе будет обновлен.Обратите внимание, что с 2022-06-08 amoCRM добавила amoМаркет. Если аккаунт обновился и имеет доступ к маркету (вместо раздела Настройки -> Интеграции), то в объекте параметров конструктора `WidgetInstaller` можете указать `amoMarket: true`. Иначе укажате `amoMarket: false`.
## Установка
```bash
# npm
npm install --save-dev @amopro/widget-installer
# or yarn
yarn add --dev @amopro/widget-installer
```## Использование
Вы можете посмотреть заготовку виджета в репозитории [amocrm-widget-starter-kit](https://github.com/max-kut/amocrm-widget-starter-kit)
```javascript
const path = require('path');
const WIDGET_DIR = path.resolve('widget');// ...
// Здесь вы собираете виджет в папку "widget"
// ...try {
const installer = require('@amopro/widget-installer');
const {WidgetInstaller, makeZipArchive} = installer;console.log('Make widget archive...');
const widgetZipPath = await makeZipArchive(WIDGET_DIR);
console.log('Widget uploading...');
const installerParams = {
subDomain: process.env.AMO_SUBDOMAIN,
login: process.env.AMO_LOGIN,
password: process.env.AMO_PASSWORD,
widgetZipPath: widgetZipPath,
redirectUri: process.env.APP_URL + '/amocrm/auth',
revokeAccessHookUri: process.env.APP_URL + '/amocrm/destroy',
amoMarket: true, // true - если аккаунт имеет доступ к amoМаркет (с 2022-06-08)
};
const wi = new WidgetInstaller(installerParams);
await wi.upload();
console.log('Widget uploaded!');// после загрузки можно удалить архив
const fse = require('fs-extra');
fse.removeSync(path.resolve('widget.zip'));
} catch (e) {
console.error('uploading error', e.toString());
throw e;
}```