Отправить стикер телеграм бот python

telegram.Sticker¶

telegram.PhotoSize – Optional. Sticker thumbnail in the .webp or .jpg format.

str – Optional. Emoji associated with the sticker.

str – Optional. Name of the sticker set to which the sticker belongs.

telegram.MaskPosition – Optional. For mask stickers, the position where the mask should be placed.

telegram.Bot – Optional. The Bot to use for instance methods.

  • file_id ( str ) – Unique identifier for this file.
  • width ( int ) – Sticker width.
  • height ( int ) – Sticker height.
  • thumb ( telegram.PhotoSize , optional) – Sticker thumbnail in the .webp or .jpg format.
  • emoji ( str , optional) – Emoji associated with the sticker
  • set_name ( str , optional) – Name of the sticker set to which the sticker belongs.
  • mask_position ( telegram.MaskPosition , optional) – For mask stickers, the position where the mask should be placed.
  • file_size ( int , optional) – File size.
  • (obj (**kwargs) – dict ): Arbitrary keyword arguments.7
  • bot ( telegram.Bot , optional) – The Bot to use for instance methods.
  • timeout ( int | float , optional) – If this value is specified, use it as the read timeout from the server (instead of the one specified during creation of the connection pool).
  • **kwargs ( dict ) – Arbitrary keyword arguments.

© Copyright 2015-2018, Leandro Toledo Revision 7eeb670a .

Versions latest stable Downloads pdf On Read the Docs Project Home Builds Free document hosting provided by Read the Docs.

Источник

Telegram бот на Python. Практические примеры

Представляю Вашему вниманию практические примеры по теме, как создать Telegram бот на Python3 с использованием библиотеки pyTelegramBotAPI. Тут я не вижу смысла рассказывать о том, как использовать Bot Father, так как, скорее всего это знают все, либо инфы в инете полно. Минимум что будет из банальных примеров — это обработка таких команд, как «/start» и «/help» либо любой бот начинается именно с этого + это будет полезно, для тех кто только начинает свой путь в создании ботов Telegram.

План действий в рамках этой статьи такой. Но она будет дополнятся, так как данную статью я буду использовать для себя в качестве справки… По этому можете добавить страницу в закладки.

  1. Подготовка — Создаём config.py и используем Proxy.
  2. Обработка команд «/start» и «/help».
  3. Обработка простых сообщений. Отправка и получение.
  4. Как скачать и отправить стикер пользователю из бота.
  5. Как отправить и получить документ, аудио, видео и.т.д
  6. Разбираемся с Emoji, как получить код смайла для отправки в сообщении.
  7. Получаем информацию о пользователе, который запустил бота.
Читайте также:  Text not selectable css

Подготовка — Создаём config.py и используем Proxy.

Файл config.py понадобится нам для хранения Токена бота и proxy (Если используете). Сложного тут нет ничего, обычный файл с двумя переменными, которые мы будет использовать в основном файле проекта.

Так просто выглядит файл config.py который нужно импортировать в основном файле проекта, созданием которого мы сейчас займемся. Я его так и назову «telegram_bot.py»

Практически Telegram бот на Python уже готов к работе и его можно запустить, если нет ошибок то бот работает. Но есть одна проблема. Бот работает через прокси, а библиотека request, которая нам нужна для загрузки файлов от пользователя, в данном случаи не использует прокси, по этому скачивать файлы не получиться… Это дело можно исправить, но лучше использовать VPN а от proxy отказаться.

В дальнейшем будем считать, что у нас настроен VPN ну или бот пишется непосредственно на сервере))) Теперь когда с подключением разобрались, пришло время научить бота совершать какие либо действия.

Обработка команд «/start» и «/help».

Библиотека «pyTelegramBotAPI» использует декораторы, это очень удобно и практично. Посмотрим как это работает на примере обработки команд «/start» и «/help».

Если пользователь Вашего бота отправить одну из команд start или help то сработает функция «welcome()» (Название функции может быть произвольным) главное что бы она принимала обязательный параметр «message» в котором содержится много полезной информации.

А вот пример как работают декораторы. Мы можем обработать команды в разных функциях.

Все получается аккуратно и логично, запутаться что и где уже стало сложнее, а значит разработка бота сводится не к рутине а к удовольствию =)

Обработка простых сообщений. Отправка и получение.

До этого момента мы работали только с командами, теперь нам предстоит работа с различным типом сообщений от пользователя. Сложного в этом ничего нет, все так же просто, как и с командами. Просто нам нужно указать тип ожидаемого сообщения от пользователя.

Типов сообщений в pyTelegramBotAPI достаточно. Некоторые из них для примера «text, audio, document» и.т.д. Рассмотрим пример

Так же можно записать следующим образом @bot.message_handler(content_types=[«text», «document», «audio»]) Надеюсь с этим все понятно, и работа декораторов Вам понятна.

Читайте также:  Java regex pattern with

Как получить простое сообщение от пользователя.

Ранее я уже сказал что в «message» много интересного. Там же и находится сообщение которое напечатал пользователь боту. Прочитать его можно так.

В консоль будет выведено сообщение от пользователя.

Как отправить простое сообщение пользователю.

Теперь разберёмся с тем, как отправить сообщение пользователю. Даже не смотря на то, что выше Вы уже видели, как это делается.

Вызываем метод «send_message» и передаём ему собственно ID и текст сообщение. В данном примере происходит следующие: Если пользователь напишет «hello» то бот ему ответит «И тебе hello»

Как скачать и отправить стикер пользователю из Telegram бота

Думаю это будет интересный пример, сейчас мы научимся отправлять Стикеры из telegram бот на python3. Для того что бы отправить стикер из бота, нам нужно узнать ID нужного нам стикера. Сделать это просто, отправьте любой стикер боту «@StickerID_Bot» и он в ответ вернёт Вам ID файла.

Как отправить Стикер

Если пользователь боту пришлёт слово «sticker» то в ответ мы отправим ему свой стикер. За место send_message вызывается метод send_sticker также передаётся id и за место текста отправляется ID стикера. Все просто — стикер отправлен))

Как получить Стикер (Скачать на локальную машину)

Давайте скачаем на локальную машину файл стикера, который прислал пользователь боту.

Собственно опять «message»! Пользователь отправляет нам стикер. Находим ID Стикера и отдаём его методу «get_file» что бы получить путь до файла на сервере телеграмма. А дальше скачаем файл в папку «stickers» которую нужно создать в том каталоге, где находится весь проект бота.

Как отправить и получить документ, аудио, видео, фото и.т.д

Продолжаем пилить telegram бот на python3 и на простом примере разберёмся, как отправлять файлы пользователям telegram бота.

Как отправить файл пользователю бота

Отправляем пользователю фотографию

За это отвечает метод «send_photo» Аналогично поступим и с другими типами файлов. Например нам нужно отправить документ «file.txt»

Отправляем пользователю документ

Тут мы уже используем метод «send_document» аналогично поступаем с другими типами файлов аудио, видео и прочие.

Как получить файл от пользователя

Все также как и со стикерами. В этом примере получим документ от пользователя и скачаем его себе на локалку.

Получим от пользователя музыку

Точно таким-же способом можно получить любой тип файла от пользователей и создать Telegram бот на Python для конвертации файлов или у кого на что фантазии хватает))

  • PySpeedTest Как узнать Скорость соединения в Python
  • Nuitka — Библиотека для трансляции кода на python в С и компиляции в exe
  • Pafy — Библиотека для скачивания видео с YouTube
  • Instabot — модуль для Python, который реализует обертку над API Instagram
  • Python-Cptchnet — Модуль для работы с API сервиса Cptch.net
  • pyTelegramBotAPI Библиотека для создание Ботов Telegram
Читайте также:  Foxweld ru diy 4 php

Если есть возможность — поддержать нас: будем очень признательны. Денежные средства пойдут на дальнейшее развитие проекта!

Источник

Photo and Sticker Messages

You can provide the source file for almost all multimedia messages (e.g. photo, video) in 3 ways:

  • Uploading a file with the HTTP request
  • HTTP URL for Telegram to get a file from the internet
  • file_id of an existing file on Telegram servers (recommended)

Examples in this section show all three. You will learn more about them later on when we discuss file upload and download.

Photo

Sending a photo is simple. Here is an example:

Message message = await botClient.SendPhotoAsync( chatId: chatId, photo: InputFile.FromUri("https://github.com/TelegramBots/book/raw/master/src/docs/photo-ara.jpg"), caption: "Ara bird. Source: Pixabay", parseMode: ParseMode.Html, cancellationToken: cancellationToken); 

photo message

Caption

Multimedia messages can optionally have a caption attached to them. Here we sent a caption in HTML format. A user can click on Pixabay in the caption to open its URL in the browser.

Similar to message entities discussed before, caption entities on Message object are the result of parsing formatted(Markdown or HTML) caption text. Try inspecting these properties in debug mode:

  • message.Caption : caption in plain text without formatting
  • message.CaptionEntities : info about special entities in the caption
  • message.CaptionEntityValues : text values of mentioned entities

Photo Message

The message returned from this method represents a photo message because message.Photo has a value. Its value is a PhotoSize array with each element representing the same photo in different dimensions. If your bot needs to send this photo again at some point, it is recommended to store this array so you can reuse the file_id value.

Here is how message.Photo array looks like in JSON:

Sticker

Telegram stickers are fun and our bot is about to send its very first sticker. Sticker files should be in WebP format.

This code sends the same sticker twice. First by passing HTTP URL to a WebP sticker file and second by reusing FileId of the same sticker on Telegram servers.

Message message1 = await botClient.SendStickerAsync( chatId: chatId, sticker: InputFile.FromUri("https://github.com/TelegramBots/book/raw/master/src/docs/sticker-fred.webp"), cancellationToken: cancellationToken); Message message2 = await botClient.SendStickerAsync( chatId: chatId, sticker: InputFile.FromFileId(message1.Sticker!.FileId), cancellationToken: cancellationToken); 

sticker messages

Try inspecting the sticker1.Sticker property. It is of type Sticker and its schema looks similar to a photo.

There is more to stickers and we will talk about them in greater details later.

Источник

Оцените статью