Полнофункциональная TypeScript библиотека для работы с Gupshup WhatsApp Business API. Предоставляет удобные клиенты для отправки сообщений, управления шаблонами, подписками и бизнес-профилем.
npm install @mobilon-dev/gupshup
import { GupshupAPIClient } from '@mobilon-dev/gupshup';
const client = new GupshupAPIClient({
API_KEY: 'your-api-key',
APP_NAME: 'your-app-name',
SOURCE_MOBILE_NUMBER: 'your-phone-number',
APP_ID: 'your-app-id',
debug: true
});
// Отправка простого текстового сообщения
const response = await client.sendTextMessage('79135292926', 'Привет!');
console.log(response.data);
Основной клиент для работы с WhatsApp Business API. Позволяет отправлять различные типы сообщений и управлять бизнес-профилем.
Возможности:
const client = new GupshupAPIClient({
API_KEY: 'your-api-key',
APP_NAME: 'your-app-name',
SOURCE_MOBILE_NUMBER: 'your-phone-number',
APP_ID: 'your-app-id',
debug: true
});
Клиент для работы с партнерским API Gupshup. Предоставляет расширенные возможности для партнеров.
Возможности:
const partnerClient = new GupshupPartnerApiClient({
appId: 'your-app-id',
appToken: 'your-app-token',
debug: true
});
Клиент для работы с токенами партнерского API. Управляет доступом к приложениям и созданием новых приложений.
Возможности:
const tokenClient = new GupshupPartnerTokenApiClient({
partnerToken: 'your-partner-token',
debug: true
});
Сервисный клиент для аутентификации в партнерском портале.
Возможности:
const serviceClient = new GupshupPartnerServiceClient({ debug: true });
const authData = await serviceClient.getPartnerToken('email@example.com', 'password');
// Текстовое сообщение
await client.sendTextMessage('79135292926', 'Привет!');
// Изображение с подписью
await client.sendMediaImageMessage(
'79135292926',
'https://example.com/image.jpg',
'Посмотрите на это изображение!'
);
// Шаблонное сообщение
await client.sendTemplateTextMessage(
'79135292926',
'template-id',
['параметр1', 'параметр2']
);
// Интерактивное сообщение со списком
await client.sendListMessage('79135292926', {
title: 'Выберите опцию',
body: 'Доступные варианты:',
buttonText: 'Выбрать',
sections: [{
title: 'Опции',
rows: [
{ id: '1', title: 'Опция 1', description: 'Описание опции 1' },
{ id: '2', title: 'Опция 2', description: 'Описание опции 2' }
]
}]
});
// Получение информации о бизнес-профиле
const profile = await client.getBusinessProfile();
// Обновление описания
await client.updateBusinessProfileAbout('Новое описание компании');
// Обновление фото профиля
await client.updateBusinessProfilePhoto('https://example.com/logo.jpg');
// Добавление подписки
await client.addSubscription({
phone: '79135292926',
status: 'subscribed'
});
// Получение списка подписчиков
const subscribers = await client.getOptInUsersList();
// Получение всех подписок
const subscriptions = await partnerClient.getAllSubscriptions();
// Создание нового шаблона
const template = await partnerClient.createTemplate({
name: 'welcome_template',
category: 'UTILITY',
components: [{
type: 'HEADER',
format: 'TEXT',
text: 'Добро пожаловать!'
}, {
type: 'BODY',
text: 'Спасибо за регистрацию, {{1}}!'
}]
});
// Загрузка медиа-файла
const mediaId = await partnerClient.uploadMedia('path/to/image.jpg');
Подробная документация с примерами доступна в папке /docs
после сборки проекта:
npm run build
npm run docs:view
npm install
npm run build
npm test
npm run lint-fix
npm run docs:build
npm run docs:view
MIT License - см. файл LICENSE для подробностей.
Если у вас есть вопросы или предложения, создайте issue в репозитории или обратитесь в Telegram группу Gupshup.