umbot
Version:
Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф
108 lines (107 loc) • 5.82 kB
TypeScript
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;
}