20 KiB
TelegramEnterprise теперь часть Открытого пакета интеграций https://github.com/Bayselonarrend/OpenIntegrations |
TelegramEnterprise
Библиотека интеграции 1С и Telegram
В данной библиотеке реализованы базовые методы Telegram Bot API для управления ботами
Особенности:
- Не нужно ничего устанавливать: создайте 2 пустых модуля в базе и скопируйте код из репозитория туда
- Не нужно разбираться в документации Telegram Bot API: методы уже выполняют конкретные действия, которые подойдут большинству пользователей, вроде ОтправитьКартинку() или ПереслатьСообщение()
- Основная разработка с тестированием велись на режиме своместимости версии 8.3.6. Возможно, будет работать и на более ранних версиях.
Документация Telegram Bot API:
https://core.telegram.org/bots/api
Схожая библиотека, но для VK:
https://github.com/Bayselonarrend/VKEnterprise
Для начала использования библиотеки достаточно пройти два простых шага:
Установка библиотеки
Библиотека представляет из себя всего два общих модуля
- Инструменты - содержит вспомогательные методы, вроде отправки http запросов, чтения JSON и пр.
- Действия - непосредственно сами методы работы с Telegram
Эти модули необходимо добавить в свою конфигурацию (модули серверные). При переименовании модуля Инструменты необходимо будет провести рефакторинг в модуле Действия. Модуль же Действия можно переименовывать без изменений.
Если вы уже используете библиотеку VKEnterprise для интеграции с ВКонтакте, то модуль Инструменты совместим и дублировать его не нужно, однако стоит проверить, не изменилось ли что-нибудь с выходами новых версий библиотек.
После установки можно вызывать нужные методы из модуля Действия
Получение необходимых данных
Перед началом работы необходимо получить некоторые параметры для бота Telegram. Их всего два
1. Токен
Токен можно получить у BotFather сразу после создания бота
2. ID чата
Если вы собираетесь использовать бота для управления каналом, то вместо ID чата можно использовать имя с @ в начале (@mychannel). При использовании бота как чат-бота, ID чата необходимо получать из сообщений, приходящих на ваш http-сервис, для каждого отдельного пользователя.
Оба эти значения передаются как первые два параметра в методы.
Реализованные методы:
Все методы возвращают ответ от Telegram как структуру
Для получения данных бота
Эти методы предназначены для получения данных бота
- Информация о боте | Метод: ПолучитьИнформациюБота()
Параметр Тип Назначение Токен Строка Токен бота
- Получение обновлений при работе в режиме LongPoll | Метод: ПолучитьОбновления()
Параметр Тип Назначение Токен Строка Токен бота
LongPoll - вы сами получаете обновления о новых сообщениях от Telegram. Callback - сервер присылает вам информацию при появлении новых сообщений.
- Обработать Callback от бота | Метод: ОбработатьДанные()
Параметр Тип Назначение Запрос Http-запрос Запрос, приходящий на http-сервис
Преобразует запрос от бота в человеческий вид. Возвращает структуру
Для работы в чатах и каналах
Эти методы предназначены для отправки разнообразных сообщений в чаты и каналы
- Отправить текстовое сообщение | Метод: ОтправитьТекстовоеСообщение()
Параметр Тип Назначение Токен Строка Токен бота IDЧата Строка/Число ID целевого чата Текст Строка Текст сообщения Клавиатура Строка См. Прочее - Сформировать клавиатуру по массиву кнопок
- Отправить картинку | Метод: ОтправитьКартинку()
Параметр Тип Назначение Токен Строка Токен бота IDЧата Строка/Число ID целевого чата Текст Строка Подпись под картинкой Картинка Двоичные данные / Строка (путь к файлу) Файл Клавиатура Строка См. Прочее - Сформировать клавиатуру по массиву кнопок
- Отправить видео | Метод: ОтправитьВидео()
Параметр Тип Назначение Токен Строка Токен бота IDЧата Строка/Число ID целевого чата Текст Строка Подпись под видео Видео Двоичные данные / Строка (путь к файлу) Файл Клавиатура Строка См. Прочее - Сформировать клавиатуру по массиву кнопок
- Отправить аудио | Метод: ОтправитьАудио()
Параметр Тип Назначение Токен Строка Токен бота IDЧата Строка/Число ID целевого чата Текст Строка Подпись под аудио Аудио Двоичные данные / Строка (путь к файлу) Файл Клавиатура Строка См. Прочее - Сформировать клавиатуру по массиву кнопок
- Отправить документ | Метод: ОтправитьДокумент()
Параметр Тип Назначение Токен Строка Токен бота IDЧата Строка/Число ID целевого чата Текст Строка Подпись под документом Документ Двоичные данные / Строка (путь к файлу) Файл Клавиатура Строка См. Прочее - Сформировать клавиатуру по массиву кнопок
- Отправить гифку | Метод: ОтправитьГифку()
Параметр Тип Назначение Токен Строка Токен бота IDЧата Строка/Число ID целевого чата Текст Строка Подпись под гифкой Гифка Двоичные данные / Строка (путь к файлу) Файл Клавиатура Строка См. Прочее - Сформировать клавиатуру по массиву кнопок
- Отправить набор любых файлов | Метод: ОтправитьНаборЛюбыхФайлов()
Параметр Тип Назначение Токен Строка Токен бота IDЧата Строка/Число ID целевого чата Текст Строка Подпись под файлами СоответствиеФайлов Соответствие: Ключ - ДД, Строка (Путь к файлу); Значение - Тип содержимого Набор файлов Клавиатура Строка См. Прочее - Сформировать клавиатуру по массиву кнопок
Доступны типы файлов: audio, document, photo, video. Нельяз смешивать типы audio и document с другими типами внутри одного сообщения.
- Отправить местоположение | Метод: ОтправитьМестоположение()
Параметр Тип Назначение Токен Строка Токен бота IDЧата Строка/Число ID целевого чата Широта Строка/Число Географическая широта Долгота Строка/Число Географическая долгота Клавиатура Строка См. Прочее - Сформировать клавиатуру по массиву кнопок
- Отправить контакт с номером телефона | Метод: ОтправитьКонтакт()
Параметр Тип Назначение Токен Строка Токен бота IDЧата Строка/Число ID целевого чата Имя Строка/Число Имя Фамилия Строка/Число Фамилия Телефон Строка Номер телефона
- Отправить опрос | Метод: ОтправитьОпрос()
Параметр Тип Назначение Токен Строка Токен бота IDЧата Строка/Число ID целевого чата Вопрос Строка Вопрос опроса Массив ответов Массив строк Строки варианты ответа Анонимный Булево (по умолчанию Истина) Анонимность опроса
- Переслать сообщение | Метод: ПереслатьСообщение()
Параметр Тип Назначение Токен Строка Токен бота IDОригинала Строка/Число ID сообщения в чате-источнике IDОткуда Строка/Число ID чата-источника IDКуда Строка/Число ID чата-приемника
Для администрирования канала
Эти методы предназначены для администрирования каналов
- Забанить пользователя | Метод: Бан()
Параметр Тип Назначение Токен Строка Токен бота IDЧата Строка/Число ID целевого чата IDПользователя Строка/Число ID участника канала
- Разбанить пользователя | Метод: Разбан()
Параметр Тип Назначение Токен Строка Токен бота IDЧата Строка/Число ID целевого чата IDПользователя Строка/Число ID участника канала
- Создать ссылку-приглашение | Метод: СоздатьСсылкуПриглашение()
Параметр Тип Назначение Токен Строка Токен бота IDЧата Строка/Число ID целевого чата Заголовок Строка (по умолчанию "") Заголовок ссылки Дата истечения Дата (по умолчанию "") Дата, после которой ссылка становится неактивной. Бессрочная, если не заполнено ЛимитПользователей Число (по умолчанию "") Максимальное количество вступлений по ссылке. Бесконечно, если не заполнено
- Закрепить сообщение | Метод: ЗакрепитьСообщение()
Параметр Тип Назначение Токен Строка Токен бота IDЧата Строка/Число ID целевого чата IDСообщения Строка/Число ID сообщения для закрепления
- Открепить сообщение | Метод: ОткрепитьСообщение()
Параметр Тип Назначение Токен Строка Токен бота IDЧата Строка/Число ID целевого чата IDСообщения Строка/Число ID сообщения для открепления
- Получить число участников канала | Метод: ПолучитьЧислоУчастников()
Параметр Тип Назначение Токен Строка Токен бота IDЧата Строка/Число ID целевого чата
Для Telegram Mini Apps (Web Apps)
Эти методы предназначены для работы с Telegram Mini Apps
- Проверить достоверность данных initData() | Метод: ОбработатьДанныеTMA()
Параметр Тип Назначение СтрокаДанных Строка querry из initData() Токен Строка Токен бота
Прочее
Прочие методы
- Создать клавиатуру из массива кнопок | Метод: Сформировать клавиатуру по массиву кнопок()
Параметр Тип Назначение Массив кнопок Массив строк Массив строк с текстом кнопок Под сообщением Булево (по умолчанию Ложь) Истина - кнопки будут под сообщением (доступно не для всех методов), Ложь - кнопки будут нижней панелью над полем ввода сообщения
- Отправить любой файл (метод используется как основа для функций отправки картинки, видео, документа, аудио и гифки) | Метод: ОтправитьФайл()
Параметр Тип Назначение Токен Строка Токен бота IDЧата Строка/Число ID целевого чата Текст Строка Текст сообщения Файл Двоичные данные / Строка (путь к файлу) Файл Вид Строка Доступные значения: document, photo, video, audio, animation Клавиатура Строка См. Прочее - Сформировать клавиатуру по массиву кнопок
В проекте используется механизм распаковки zip и gzip vbondarevsky/Connector
Copyright 2017-2023 Vladimir Bondarevskiy под Apache License, Version 2.0
Используются методы HMAC SHA-256 и некоторые другие из БСП
Copyright (c) 2019, ООО 1С-Софт Все права защищены. Эта программа и сопроводительные материалы предоставляются в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) Текст лицензии доступен по ссылке: https://creativecommons.org/licenses/by/4.0/legalcode
Остальной проект распространяется под лицензией MIT
Модуль Инструменты данной библиотеки совместим с подобными модулями последних версий остальных библиотек в линейке
- ViberEnterprise - библиотека для интеграции с Viber
- VKEnterprise - библиотека для интеграции с ВКонтакте
Статьи на Инфостарте:
https://infostart.ru/1c/articles/1951756/
https://infostart.ru/1c/articles/1999597/