Как отправить картинку Телеграм бот

Содержание

Будущее наступило: в рабочем чате отдела маркетинга одновременно находятся люди и боты У каждого ― собственные задачи. Например, бот Wall-e помогает маркетологам Ringostat следить за важными показателями ― каждый день по расписанию присылает в чат скриншот дашборда с данными из Google Analytics и CRM. Рассказываем, как создать и настроить бота-помощника, который возьмет на себя часть рабочей рутины.

Время чтения 10 минут

  1. Зачем нужен бот-отправлятор
  2. Создание бота
  3. Получение chat_id
  4. Настройка направления и расписания отправки
  5. Создание триггера
  6. Запуск бота
  7. Тестирование
  8. Возможные ошибки и проблемы
  9. Выводы

Зачем нужен бот-отправлятор

Многие отделы маркетинга и продаж ежедневно отслеживают ключевые показатели работы: количество посещений сайта, лидов, звонков, сделок. Например, маркетологи Ringostat создали дашборд, куда в режиме реального времени подтягиваются сведения из Google Analytics и CRM. Так нам не приходится собирать данные из разных систем вручную ― это происходит автоматически. О том, как настроить дашборд мы написали в статье «Дашборд для отдела маркетинга: описание настройки и шаблон» . Но оставался еще один вопрос ― как настроить регулярную рассылку дашборда, чтобы всегда держать важные показатели под рукой? Раньше руководителю приходилось каждый день заходить в документ, делать скрин экрана и пересылать в группу. Но теперь эта задача поручена боту. Каждое утро сотрудники отдела маркетинга Ringostat получают о него скриншот дашборда со свежими показателями сайта и блога.

Отправка фото Telegram Bot на python

бот-отправлятор, настройка бота, google таблицы, отправка файлов в Telegram

  • берет заданный диапазон из Google Таблицы ;
  • превращает в картинку формата JPG или PDF-документ;
  • в определенные дни недели и часы отправляет изображение в Telegram ― лично пользователю или в групповой чат.

Боту можно поручить сбор и отправку данных из самых разных документов в Google Таблицах, например:

  • для отделов маркетинга и продаж ― отчетов по трафику, лидам, звонкам, сделкам;
  • для руководителя ― ежедневного плана задач от каждого менеджера и отчетов о выполненной работе;
  • для менеджера ― выполнение метрик, ежемесячной «выписки» о зарплате.

Чтобы запустить такого бота, не обязательно быть программистом. Можно воспользоваться готовым скриптом, который разработан админами группы «Google Таблицы» . Подробную инструкцию по настройке и запуску бота можно найти в посте или прочитать ниже.

Получите больше лидов и прокачайте продажи

Повысьте эффективность рекламы с Ringostat и контролируйте, как менеджеры принимают звонки

Создание бота

Самый первый этап ― создание собственного бота.

Получение chat_id

Бот может отправлять изображения из таблиц:

  • лично пользователю;
  • в групповой чат.

ВАЖНО. Иногда chat_id содержит знак «-» вначале. Этот минус нужно копировать вместе с цифрами.

Настройка направления и расписания отправки

Готовый скрипт для запуска бота-отправлятора содержится в таблице . Скопируйте ее через «Файл» ― «Создать копию» и уже в собственном документе можете приступать к настройкам бота.

Еще по теме:  Вовлекающее приветственное сообщение в Телеграмме

бот-отправлятор, настройка бота, google таблицы, отправка файлов в Telegram

  1. Столбец А : укажите адрес Google Таблицы, из которой ваш бот будет брать данные для пересылки в Telegram.
  2. Столбец B : задайте лист и диапазон, который бот должен захватить в скриншот. Например: Лист1 | A1:A10.
  3. Столбец С : перечислите через запятую все chat_id, на которые бот должен отправлять указанные вами выше данные из Google Таблицы.
  4. Столбец D : напишите сопроводительный текст, которым бот будет дополнять каждое сообщение. Например: «Маркетологи, это наши результаты на сегодня» или «Григорий, это ваша зарплата».
  5. Столбцы Е и F : задайте дни недели и часы, в которые бот должен слать пользователям данные из Google Таблицы. Например, если получать сообщение нужно дважды в день в рабочие дни, в столбце Е укажите дни 1;2;3;4;5, а в столбце ― часы 9;18.
  6. Столбец G: укажите желаемый формат изображений ― JPG или PDF. Картинку в формате JPG намного удобнее открывать прямо в чате Telegram, но изображение сжимается и становится «мыльным». Если исходный документ содержит много цифр или текста мелким шрифтом ― прочесть его сложно. Картинку PDF придется скачивать и открывать через стороннее приложение, зато изображение останется четким.
  7. Столбцы H и I : заполняются автоматически. Первый столбец содержит дату и время последней отправки, второй ― показывает отчет о возникших проблемах.
  8. Столбец K : внесите токен вашего бота, который получили от BotFathe.

бот-отправлятор, настройка бота, google таблицы, отправка файлов в Telegram

ВАЖНО: если ячейка содержит несколько разных данных, например, несколько chat_id, дней недели, часов ― удалите между ними пробелы. Данные должны быть разделены между собой только знаками ― запятой или точкой с запятой. В противном случае бот не сработает.

Создание триггера

  1. В документе со скриптом заходите в «Инструменты» ― «Редактор скриптов». бот-отправлятор, скрипт, настройка бота, google таблицы, отправка файлов в Telegram
  2. На левой боковой панели нажмите значок таймера ― «Настройки триггера».
  3. Перед нами откроется окно с настройками:
  • название функции: main;
  • развертывание: основное развертывание;
  • источник мероприятия: триггер по времени;
  • тип триггера: по часам;
  • промежуток времени: раз в час;
  • уведомления про ошибки: каждый день. бот-отправлятор, настройка бота, google таблицы, отправка файлов в Telegram

Этот триггер подходит для регулярной отправки данных ― согласно указанных вами дней недели и часов. Скрипт будет запускаться только тогда, когда будет срабатывать триггер. А точные дни и часы для отправки он будет искать в столбцах Е и F.

Для сравнения: раньше мы писали про другого бота, который отправляет в Telegram-чат новости о новых продажах. Для него назначен триггер «Из таблицы» и «При изменении» ― он срабатывает после передачи в таблицу из CRM данных о новой продаже.

Запуск бота

Бот вежливый ― первым писать не станет

  1. Если бот должен передавать данные лично пользователю , нужно сначала найти и запустить бота ― нажать команду /start.
  2. Если бот должен слать данные в группу, нужно добавить его в число участников. Дополнительные команды не нужны.

Тестирование

Осталось проверить, как работает наш бот. Обратите внимание на пункт «Меню скриптов» в вашем документе.

бот-отправлятор, настройка бота, google таблицы, отправка файлов в Telegram

Тут есть три задачи:

  • запустить отправлятор один раз ― для проверки;
  • настроить триггер для постоянной отправки ― мы уже это сделали;
  • удалить триггер.

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

бот-отправлятор, настройка бота, google таблицы, отправка файлов в Telegram

Возможные ошибки и проблемы

Если бот ничего не прислал, вот список возможных ошибок.

  1. Бот не запущен пользователем или не добавлен в число участников группы.
  2. Несовпадение часовых поясов в настройках скрипта и ваших документах. Проверить часовой пояс в Google Таблицах можно через «Файл» ― «Настройки таблицы», а в скрипте ― «Редактор скриптов» ― «Файл» ― «Свойства проекта». Они должны совпадать.
  3. Пробелы в столбцах С, Е, F. Данные могут быть разделены между собой только знаками.
Еще по теме:  Как сделать прозрачный стикер в ТГ

Если у вас возникнут другие вопросы или сложности, можете задать их в Telegram-чате группы «Google Таблицы» .

Выводы

Источник: blog.ringostat.com

Форматирование текста, работа с документами (файлами), отправка фотографий и альбомов в Telegram-боте на Python

В данной статье мы рассмотрим основные аспекты форматирования текста, работы с документами и отправки фотографий или альбомов в Telegram-боте, используя Python и библиотеку Aiogram.

Форматирование текста

Telegram поддерживает три вида форматирования текста: Markdown, MarkdownV2 и HTML.

Примеры форматирования текста:

text = «»» *Жирный текст* _Курсив_ [Ссылка](https://example.com) `Код` «»»
text = «»» \*Жирный текст\* _Курсив_ [Ссылка](https://example.com) `Код`

Отправка текста с форматированием:

from aiogram.types import ParseMode await bot.send_message(chat_id=chat_id, text=text, parse_mode=ParseMode.MARKDOWN)

Работа с документами (файлами)

Для отправки документов воспользуйтесь методом send_document .

file_path = ‘path/to/your/file.txt’ with open(file_path, ‘rb’) as file: await bot.send_document(chat_id=chat_id, document=file)

Отправка фотографий

Чтобы отправить фотографию, используйте метод send_photo .

photo_path = ‘path/to/your/photo.jpg’ with open(photo_path, ‘rb’) as photo: await bot.send_photo(chat_id=chat_id, photo=photo)

Отправка альбомов

Альбомы представляют собой медиагруппы, состоящие из нескольких фотографий или видео.

from aiogram.types import InputMediaPhoto photo_paths = [‘path/to/your/photo1.jpg’, ‘path/to/your/photo2.jpg’, ‘path/to/your/photo3.jpg’] media_group = [InputMediaPhoto(open(photo_path, ‘rb’)) for photo_path in photo_paths] await bot.send_media_group(chat_id=chat_id, media=media_group)

Обратите внимание, что после использования send_media_group , файлы нужно закрыть:

for photo in media_group: photo.media.close()

Теперь вы знакомы с основными аспектами форматирования текста, работы с документами и отправки фотографий или альбомов в вашем Telegram-боте на Python.

Источник: devprac.ru

Как создать Telegram бота с помощью Python

Python

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

В этом уроке мы будем использовать Python 3, библиотеку python-telegram-bot и публичный API RandomDog.

В конце урока у вас будет свой бот для снятия стресса, который будет присылать вам милых пёсиков, когда захотите.

Начнём

Перед тем как писать программу, нам нужно сгенерировать токен для нашего бота. Токен понадобится для доступа к API Telegram’а, и установки необходимых зависимостей.

1. Создаём нового бота в BotFather

Если вы задумали создавать бота для Telegram, сначала его нужно зарегистрировать, перед тем как использовать. Когда вы регистрируете бота, вы получаете токен для доступа к API Telegram’а

Перейдите по ссылке BotFather (у вас должно быть установлено приложение Telegram) и создайте нового бота, отправив команду /newbot . Следуйте инструкциям, пока не получите имя пользователя и токен для вашего бота. Ссылка для доступа к боту выглядит так: https://telegram.me/YOUR_BOT_USERNAME , а токен вот так:

704418931:AAEtcZ*************

2. Устанавливаем библиотеку

Команда для установки библиотеки:

pip3 install python-telegram-bot

Если всё прошло гладко, то можно двигаться дальше.

Пишем программу

Наш бот должен возвращать изображение с пёсиком, когда мы отправляем команду /bop . Генерировать случайные изображения, нам поможет публичным API от RandomDog.

Рабочий процесс нашего бота очень прост:

запрос к API -> получить URL изображение -> отправить изображение

1. Импорт библиотек

Для начала импортируем все нужные библиотеки.

from telegram.ext import Updater, CommandHandler import requests import re

2. Доступ к API и получение URL изображения

Давайте создадим функцию для получения URL. Используя библиотеку запросов, мы можем обратится к API и получить json данные.

contents = requests.get(‘https://random.dog/woof.json’).json()

Еще по теме:  Всплывающий чат Телеграмм как сделать

Проверить json данные можно в браузере по ссылке https://random.dog/woof.json . Вы увидите что-то вроде этого:

Получаем URL, чтобы иметь возможность отправить изображение:

image_url = contents[‘url’]

Оформим этот код в виде функции get_url() .

def get_url(): contents = requests.get(‘https://random.dog/woof.json’).json() url = contents[‘url’] return url

3. Отправляем картинку

Чтобы отправить сообщение/изображение, нам понадобится два параметра: URL изображения и ID получателя — это может быть ID группы или ID пользователя.

Получить URL изображения можно вызвав функцию get_url() .

url = get_url()

Чтобы получить ID получателя, используйте этот код:

chat_id = update.message.chat_id

После того как мы получили URL изображения и ID получателя, пришло время отправить сообщение, т.е. изображение.

bot.send_photo(chat_id=chat_id, photo=url)

Оберните код в функцию bop и убедитесь, что код выглядит следующим образом:

def bop(bot, update): url = get_url() chat_id = update.message.chat_id bot.send_photo(chat_id=chat_id, photo=url)

4. Основная программа

И наконец, создайте ещё одну функцию с именем main , чтобы запускать программу. Не забудьте заменить YOUR_TOKEN на токен, который вы сгенерировали ранее.

def main(): updater = Updater(‘YOUR_TOKEN’) dp = updater.dispatcher dp.add_handler(CommandHandler(‘bop’,bop)) updater.start_polling() updater.idle() if name == ‘__main__’: main()

В итоге, ваш код должен выглядеть вот так:

from telegram.ext import Updater, InlineQueryHandler, CommandHandler import requests import re def get_url(): contents = requests.get(‘https://random.dog/woof.json’).json() url = contents[‘url’] return url def bop(bot, update): url = get_url() chat_id = update.message.chat_id bot.send_photo(chat_id=chat_id, photo=url) def main(): updater = Updater(‘YOUR_TOKEN’) dp = updater.dispatcher dp.add_handler(CommandHandler(‘bop’,bop)) updater.start_polling() updater.idle() if __name__ == ‘__main__’: main()

5. Запуск программы

Отлично! Мы почти закончили. Давайте проверим работу программы. Сохраните файл и назовите его main.py . Теперь её можно запускать, командой:

python3 main.py

Запустите бота перейдя по ссылке https://telegram.me/YOUR_BOT_USERNAME . Отправьте команду /bop . Если всё работает как надо, вы увидите случайное изображение с пёсиком. Миленько.

Исправляем ошибки

Отлично! Теперь у вас есть работающий бот.

Есть ещё кое-что. API RandomDog генерирует не только изображения, но ещё видео и гифки. Мы не сможем получить видео или GIF от API, потому что произойдёт ошибка.

Давайте это исправим, чтобы бот отправлял нам только изображения. Если нам попадётся видео или GIF, мы снова будем вызывать API, пока не получим изображение.

1. Проверяем расширение файла с помощью регулярного выражения

Чтобы решить эту проблемы, мы будем использовать регулярное выражение.

Отличить изображение от видео или GIF, можно по расширению файла. Нам понадобится последняя часть URL.

https://random.dog/*****.JPG

Во-первых, необходимо определить, какие расширения файлов допускаются в нашей программе.

allowed_extension = [‘jpg’,’jpeg’,’png’]

Затем использовать регулярное выражение, чтобы извлечь расширение файла из URL.

file_extension = re.search(«([^.]*)$»,url).group(1).lower()

Создайте функцию get_image_url() , используя этот код. Она будет перебирать URL, пока вы не получите файл с подходящим расширением (jpg, jpeg, png).

def get_image_url(): allowed_extension = [‘jpg’,’jpeg’,’png’] file_extension = » while file_extension not in allowed_extension: url = get_url() file_extension = re.search(«([^.]*)$»,url).group(1).lower() return url

2. Модифицируем код

Отлично! Теперь нам осталось заменить строку url = get_url() в функции bop() на url = get_image_url() . Ваш код должен выглядеть так:

from telegram.ext import Updater, InlineQueryHandler, CommandHandler import requests import re def get_url(): contents = requests.get(‘https://random.dog/woof.json’).json() url = contents[‘url’] return url def get_image_url(): allowed_extension = [‘jpg’,’jpeg’,’png’] file_extension = » while file_extension not in allowed_extension: url = get_url() file_extension = re.search(«([^.]*)$»,url).group(1).lower() return url def bop(bot, update): url = get_image_url() chat_id = update.message.chat_id bot.send_photo(chat_id=chat_id, photo=url) def main(): updater = Updater(‘YOUR_TOKEN’) dp = updater.dispatcher dp.add_handler(CommandHandler(‘bop’,bop)) updater.start_polling() updater.idle() if __name__ == ‘__main__’: main()

Всё должно работать идеально. Этот код можно найти на моём GitHub.

Поздравляю с окончанием урока, теперь у вас есть классный бот для Telegram.

Источник: nuancesprog.ru

Рейтинг
( Пока оценок нет )
Загрузка ...