Телеграм Бот API и структуры данных

У публікації нижче розглянуто деякі типи повідомлень Telegram API та відповідні структури даних із поясненнями.

Загальний огляд

XXX

getMe
A simple method for testing your bot's auth token. Requires no parameters. Returns basic information about the bot in form of a User object.

sendPhoto
Use this method to send photos. On success, the sent Message is returned.

sendSticker
Use this method to send .webp stickers. On success, the sent Message is returned.

sendContact
Use this method to send phone contacts. On success, the sent Message is returned.

getUserProfilePhotos
Use this method to get a list of profile pictures for a user. Returns a UserProfilePhotos object.

kickChatMember
Use this method to kick a user from a group or a supergroup. In the case of supergroups, the user will not be able to return to the group on their own using invite links, etc., unless unbanned first. The bot must be an administrator in the group for this to work. Returns True on success.

unbanChatMember
Use this method to unban a previously kicked user in a supergroup. The user will not return to the group automatically, but will be able to join via link, etc. The bot must be an administrator in the group for this to work. Returns True on success.

Повідомлення

Кнопки

Для відображення кнопок під повідомленням бота до повідомлення додається об'єкт reply_markup

Каждое нажатие кнопки будет вызывать сообщение update с объектом callback_query структуры:

Методы

Отправить фото sendPhoto

Метод позволяет выполнить две функции. Загрузить новое изображение в систему Telegram и  разместить его в чате.

  • 'method': 'sendPhoto'
  • 'chat_id': Integer | String
  • 'photo': String | InputFile файл изображения
    • String <file_id> идентификатор картинки, уже загруженной в систему Telegram
    • String <url> произвольная ссылка на файл для загрузки в систему, URL необходимо подготовить для отправки , файл не загружается повторно, если уже загружался раньше
    • InputFile ? можно получить как  new CURLFile, который при использовании параметра CURLOPT_POSTFIELDS выполняет загрузку файла НО ЭТО НЕ ТОЧНО!
    • InputFile !!! эксперименты с file_get_contents() результаты пока не дали
  • 'caption' String Optional Photo caption (may also be used when resending photos by file_id), 0-1024 characters after entities parsing
  • 'parse_mode' String Optional Mode for parsing entities in the photo caption. See formatting options for more details.
  • 'caption_entities' Array of MessageEntity Optional A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode
  • 'disable_notification' Boolean Optional Sends the message silently. Users will receive a notification with no sound.
  • 'protect_content' Boolean Optional Protects the contents of the sent message from forwarding and saving
  • 'reply_to_message_id' Integer Optional If the message is a reply, ID of the original message
    allow_sending_without_reply Boolean Optional Pass True if the message should be sent even if the specified replied-to message is not found
  • 'reply_markup' InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply Optional Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user.

Фото для отправки можно задать через file_id в виде строки, если фотография существует на серверах Telegram (рекомендуется), передайте URL-адрес HTTP в виде строки, чтобы Telegram мог получить фотографию из Интернета, или загрузите новую фотографию, используя multipart/form-data. Фотография должна быть размером не более 10 МБ. Суммарная ширина и высота фотографии не должны превышать 10000. Соотношение ширины и высоты должно быть не более 20.

Результат JSON объект:

  • "ok": true,
  • "result": объект
    • "message_id": 999,
    • "from": { ... },
    • "chat": { ... },
      "date": 1662657439,
    • "photo": массив объектов
        • "file_id": String
        • "file_unique_id": String
        • "file_size": Integer размер в байтах
        • "width": Integer 90,
        • "height": Integer 90
        • "file_id": String
        • "file_unique_id": String
        • "file_size": 9032,
        • "width": 200,
        • "height": 200

При повторной отправка фото file_unique_id не меняется, но file_id меняется всегда.  Документация Telegram API рекомендует использовать file_id в целях экономии ресурсов системы

Повідомити про дію sendChatAction

Використовуйте цей метод, коли вам потрібно повідомити користувача, що щось відбувається на боті. Статус встановлюється в додатку на 5 секунд або менше (в браузері не відображається). В Повертає True у разі успіху

  • метод: 'sendChatAction'
  • объект параметров:
    • 'chat_id': Integer|String
    • 'action': String
      • 'typing' for text messages,
      • 'upload_photo' for photos,
      • 'record_video' | 'upload_video' for videos,
      • 'record_voice' | 'upload_voice' for voice notes,
      • 'upload_document' for general files,
      • 'choose_sticker' for stickers,
      • 'find_location' for location data,
      • 'record_video_note' | 'upload_video_note'

Heap

editMessageMedia

sendMediaGroup

editMessageReplyMarkup

createNewStickerSet

uploadStickerFile
Используйте этот метод, чтобы загрузить файл .PNG со стикером для последующего использования в методах createNewStickerSet и addStickerToSet (можно использовать несколько раз). Возвращает загруженный файл в случае успеха.

getChat

 

Источники

  •  Пример связи 1С и мессенджера Telegram. Получение данных из 1С запросом из Telegram //infostart.ru
  • Телеграм бот. Отчеты на мобильном устройстве без изменения конфигурации (Telegram bot) //infostart.ru

Leave a Reply