UNPKG

umbot

Version:

Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф

108 lines (107 loc) 5.82 kB
import { IViberApi, IViberGetUserDetails, IViberParams, IViberRichMediaParams, IViberSender, IViberWebhookParams } from './interfaces'; import { IViberButton } from '../Viber/interfaces/IViberPlatform'; import { AppContext } from '../../../index'; /** * Класс для взаимодействия с API Viber * Предоставляет методы для отправки сообщений, файлов и других типов контента * @see (https://developers.viber.com/docs/api/rest-bot-api/) Смотри тут */ export declare class ViberRequest { #private; /** * Токен доступа к Viber API */ token: string | null; /** * Создает экземпляр класса для работы с API Viber * Устанавливает токен из конфигурации приложения, если он доступен */ constructor(appContext: AppContext); /** * Инициализирует токен доступа к Viber API * @param token Токен для доступа к API */ initToken(token: string): void; /** * Отправляет запрос к Viber API * @param method Название метода API * @returns Результат выполнения метода или null при ошибке */ call<T extends IViberApi>(method: string): Promise<T | null>; /** * Получает информацию о пользователе Viber * Запрос можно отправлять не более 2 раз в течение 12 часов для каждого пользователя * @param id Уникальный идентификатор пользователя * @returns Информация о пользователе или null при ошибке * * Возвращаемые данные: * - id: уникальный идентификатор * - name: имя пользователя * - avatar: URL аватара * - country: код страны * - language: язык устройства * - primary_device_os: ОС устройства * - api_version: версия API * - viber_version: версия Viber * - mcc: код страны * - mnc: код сети * - device_type: тип устройства */ getUserDetails(id: string): Promise<IViberGetUserDetails | null>; /** * Отправляет сообщение пользователю * Сообщение можно отправить только после того, как пользователь подпишется на бота * @param receiver ID пользователя Viber * @param sender Информация об отправителе: * - name: имя (до 28 символов) * - avatar: URL аватара (до 100 Кб, 720x720) * @param text Текст сообщения * @param params Дополнительные параметры: * - type: тип сообщения (text, picture, video, file, location, contact, sticker, carousel, url) * - tracking_data: данные для отслеживания * - min_api_version: минимальная версия API * - media: URL контента * - thumbnail: URL превью * - size: размер файла * - duration: длительность видео/аудио * - file_name: имя файла * - contact: контактная информация * - location: координаты * - sticker_id: ID стикера * @returns Результат отправки или null при ошибке */ sendMessage(receiver: string, sender: IViberSender | string, text: string, params?: IViberParams | null): Promise<IViberApi | null>; /** * Устанавливает webhook для получения событий * @param url URL для получения событий * @param params Дополнительные параметры: * - event_types: типы событий * - send_name: отправлять имя * - send_photo: отправлять фото * @returns Результат установки или null при ошибке */ setWebhook(url: string, params?: IViberWebhookParams | null): Promise<IViberApi | null>; /** * Отправляет карточку с кнопками * @param receiver ID пользователя Viber * @param richMedia Массив кнопок для отображения * @param params Дополнительные параметры: * - tracking_data: данные для отслеживания * - min_api_version: минимальная версия API * - alt_text: альтернативный текст * @returns Результат отправки или null при ошибке */ richMedia(receiver: string, richMedia: IViberButton[], params?: IViberRichMediaParams | null): Promise<IViberApi | null>; /** * Отправляет файл * @param receiver ID пользователя Viber * @param file Путь к файлу или его содержимое * @param params Дополнительные параметры: * - tracking_data: данные для отслеживания * - min_api_version: минимальная версия API * - file_name: имя файла * - size: размер файла * @returns Результат отправки или null при ошибке */ sendFile(receiver: string, file: string, params?: IViberParams | null): Promise<IViberApi | null> | null; }