Я пытаюсь отправить сообщение в канале с ботом, используя метод Telegram API send_photo(). Он принимает параметр заголовка (тип String), но я не могу отформатировать его с помощью параметра parse_mode=’HTML’.
Если я использую что-то вроде этого:
send_photo(chat_id, photo, caption = «Some text», parse_mode=’HTML’)
Он отправляет сообщение, но без какого-либо форматирования. Кто-нибудь знает, почему? Спасибо
13.05.2019 00:33
Оператор pass в Python — это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Python — самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science.
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
Tutorial Telegram API — Part 4 | Parse Mode
Перейти к ответу Данный вопрос помечен как решенный
Ответы 2
Меня устраивает! Вот код, который я использую:
>>> from telegram import Bot >>> tkn = ‘88888:199939393’; chid = ‘-31828’ >>> bot = Bot(tkn) >>> with open(‘ye.jpeg’, ‘rb’) as fme: . bot.send_photo(chid, fme, caption=’Hallo’, parse_mode=’html’) .
Конечно, вы должны использовать свой собственный токен телеграммы и идентификатор канала. Также обратите внимание, что я использую parse_mode=’html’ # lowercase
Ага, я всегда делал это с parse_mode=ParseMode.HTML. Не думал, что parse_mode=’html’ тоже сработает! +1 за это.
Кстати, ваш ответ предполагает, что проблема в том, что HTML написан в верхнем регистре. Однако html тоже работает.
Спасибо, но есть ли у меня ограничения на теги, которые я могу использовать? Я имею в виду, я не могу использовать в подписи, верно? Или есть способ использовать его так же?
13.05.2019 03:42
Ответ принят как подходящий
Во-первых, вам нужно импорт ParseMode от telegram вот так:
from telegram import ParseMode
Тогда все, что вам нужно, это указать parse_mode=ParseMode.HTML. Вот рабочий пример:
def jordan(bot, update): chat_id = update.message.chat.id with open(‘JordanPeterson.jpg’, ‘rb’) as jordan_picture: caption = «Jordan B. Peterson» bot.send_photo( chat_id, photo=jordan_picture, caption=caption, parse_mode=ParseMode.HTML )
И мы видим, что это работает:
Еще одно обновление (согласно вашему комментарий): вы могу используете несколько тегов. Вот пример одного из них с hyperlink, bold и italic:
Еще одно обновление: относительно вашего комментарий:
. do I have any limitations on HTML tags? I can’t use something like
or
to draw a line
Вот что я сделал!
Теперь вы пытаетесь отформатировать подпись изображения, используя HTML, что означает, что вы форматируете text, поэтому, очевидно, вы не можете использовать «что-то вроде
Кращий парсер для #телеграм, бери та користуйся!
Если вы попытаетесь использовать тег форматирования текста, например , вы получите следующую ошибку:
Can’t parse entities: unsupported start tag «del» at byte offset 148
Какой позор! Я бы хотел иметь возможность делать что-то подобное в подписях к изображениям.or something like this!
Источник: reddeveloper.ru
Создание telegram бота
В этой статье я расскажу, как можно быстро и просто создать систему отправки уведомлений на любой смартфон и (или) компьютер c ESP32, без необходимости самостоятельно создавать какие-либо приложения.
Данная статья не очень связана с программированием ESP32, но она нам понадобиться в ближайшем будущем. Очень скоро я планирую «взять быка за рога» и расскажу, как создать устройство телеметрии котла на даче через WiFi и MQTT с уведомлениями, графиками и прочими сервисами. Пока не особо вдаваясь в подробности функционирования, просто используя готовую прошивку как «черный ящик » с некоторыми настройками. А уже потом на основе этого примера будем обсуждать что и как работает и зачем это надо.
Почему именно telegram?
Для этого есть несколько вполне объективных причин:
- В telegram реализован самый простой механизм отправки сообщений через API ботов. Нигде более просто отправить сообщение в чат или канал “со стороны” не получится (по крайней мере, я не встречал).
- Все сообщения, отправленные через бота, практически синхронно доставляются всем подписчикам бота и на смартфоны, и на компьютеры.
- При необходимости через тот же telegram можно не только отправлять уведомления от ESP к человеку, но и наоборот – отправлять команды от человека к устройству.
Регистрация бота
Отец всех ботов
Для того, чтобы получить команды бота, отправьте команду /help :
Справка по командам
Создание нового бота
Все. Бот создан. Для работы с ботом потребуется токен доступа к API – запишите его, он потом потребуется !
По желанию к нему можно добавить описание, поменять картинку, добавить список поддерживаемых команд и т.д. Например:
Меню настройки бота
Теперь Вы можете найти своего бота в поиске Telegram, и начать с ним работу. Но бот не ответит – ведь он пока еще ничего “не умеет”. Но как говорится – “не умеешь – научим, не хочешь – заставим”.
В принципе, этого уже достаточно для отправки сообщений в telegram – нужно только знать Ваш личный идентификатор в telegram ( как его узнать – будет рассказано далее ). Но это – не очень удобно. Если пользователь бота только один – то нормально. Но для того, чтобы отправлять уведомления сразу нескольким пользователям, придется “прописывать” каждого на ESP и отправлять уведомления каждому по очереди . Крайне неудобно.
Создаем канал
Но выход есть – создаем приватный канал, добавляем туда нужных пользователей (по ссылке-приглашению, например), а только что созданного бота добавляем в канал администратором. Вуаля – бот отправляет сообщение в канал, а все пользователи одновременно читают отправленные ботом (устройством) сообщения из канала. При необходимости можно добавлять или удалять пользователей канала, не затрагивая при этом программную начинку ESP.
Вместо канала, кстати, вполне можно создать группу. Главное отличие канала от группы — в канал могут писать только администраторы канала, а в группу — все пользователи. В группе пользователи могут обмениваться между собой какими-то дополнительными сведениями, например «Я выключил котёл» или «Датчик дыма сработал, но дыма нет, все в порядке». Кроме того, если вы планируете сделать управление устройством через команды telegram — вам точно потребуется создать группу. Но в статье мы пока рассмотрим как создать канал.
Создаем приватный канал — для этого в telegram нажимаем “Меню” и выбираем команду “ Создать канал ”:
Источник: dzen.ru
Как мне использовать parse_mode = ‘HTML’ в боте telegram python?
Я пытаюсь отправить сообщение на канале с ботом, используя метод Telegram API send_photo() . Он принимает параметр заголовка (тип String ), но я не могу отформатировать его с помощью параметра parse_mode=’HTML’ . Если я использую что-то вроде этого:
send_photo(chat_id, photo, caption=»Some text», parse_mode=’HTML’)
он отправляет сообщение, но без какого-либо форматирования. Кто-нибудь знает почему? Спасибо
спросил(а) 2019-05-13T01:33:00+03:00 4 года назад
добавить комментарий
пожаловаться
Во-первых, вам нужно импортировать ParseMode из telegram следующим образом:
from telegram import ParseMode
Затем все, что вам нужно, это указать parse_mode=ParseMode.HTML . Вот рабочий пример:
def jordan(bot, update):
chat_id = update.message.chat.id
with open(‘JordanPeterson.jpg’, ‘rb’) as jordan_picture:
caption = «Jordan B. Peterson»
bot.send_photo(
chat_id,
photo=jordan_picture,
caption=caption,
parse_mode=ParseMode.HTML
)
. есть ли у меня какие-либо ограничения на теги HTML? Я не могу использовать что-то вроде
или
чтобы нарисовать линию
Честно, Вот что я сделал! Теперь вы пытаетесь отформатировать заголовок изображения, используя HTML , то есть вы форматируете text , поэтому очевидно, что вы не можете использовать «что-то вроде «. Это должен быть » тег форматирования текста » (плюс ). И даже не все из них! Я считаю, что вы можете использовать только следующие: , , , и . Если вы попытаетесь использовать тег форматирования текста, например , он выдаст вам эту ошибку:
Не удается проанализировать объекты: неподдерживаемый начальный тег «del» со смещением байта 148
Какой позор! Я хотел бы иметь возможность сделать что-то подобное в подписи к изображениям. или как то так!
Источник: progi.pro