24 июня разработчики Telegram открыли платформу для создания ботов. Новость кого-то обошла стороной Хабр, однако многие уже начали разрабатывать викторины. При этом мало где указаны хоть какие-то примеры работающих ботов.
Прежде всего, бот для Telegram — это по-прежнему приложение, запущенное на вашей стороне и осуществляющее запросы к Telegram Bot API. Причем API довольное простое — бот обращается на определенный URL с параметрами, а Telegram отвечает JSON объектом.
Рассмотрим API на примере создания тривиального бота:
1. Регистрация
Пишем ему /start и получаем список всех его команд.
Первая и главная — /newbot — отправляем ему и бот просит придумать имя нашему новому боту. Единственное ограничение на имя — оно должно оканчиваться на «bot». В случае успеха BotFather возвращает токен бота и ссылку для быстрого добавления бота в контакты, иначе придется поломать голову над именем.
Для начала работы этого уже достаточно. Особо педантичные могут уже здесь присвоить боту аватар, описание и приветственное сообщение.
Как настроить Boosty Bot для Telegram? Сабчаты
Не забудьте проверить полученный токен с помощью ссылки api.telegram.org/bot/getMe, говорят, не всегда работает с первого раза.
2. Программирование
Создавать бота буду на Python3, однако благодаря адекватности этого языка алгоритмы легко переносятся на любой другой.
Telegram позволяет не делать выгрузку сообщений вручную, а поставить webHook, и тогда они сами будут присылать каждое сообщение. Для Python, чтобы не заморачиваться с cgi и потоками, удобно использовать какой-нибудь реактор, поэтому я для реализации выбрал tornado.web. (для GAE удобно использовать связку Python2+Flask)
URL = «https://api.telegram.org/bot%s/» % BOT_TOKEN MyURL = «https://example.com/hook» api = requests.Session() application = tornado.web.Application([ (r»/», Handler), ]) if __name__ == ‘__main__’: signal.signal(signal.SIGTERM, signal_term_handler) try: set_hook = api.get(URL + «setWebhook?url=%s» % MyURL) if set_hook.status_code != 200: logging.error(«Can’t set hook: %s. Quit.» % set_hook.text) exit(1) application.listen(8888) tornado.ioloop.IOLoop.current().start() except KeyboardInterrupt: signal_term_handler(signal.SIGTERM, None)
Здесь мы при запуске бота устанавливаем вебхук на наш адрес и отлавливаем сигнал выхода, чтобы вернуть поведение с ручной выгрузкой событий.
Приложение торнадо для обработки запросов принимает класс tornado.web.RequestHandler, в котором и будет логика бота.
class Handler(tornado.web.RequestHandler): def post(self): try: logging.debug(«Got request: %s» % self.request.body) update = tornado.escape.json_decode(self.request.body) message = update[‘message’] text = message.get(‘text’) if text: logging.info(«MESSAGEt%st%s» % (message[‘chat’][‘id’], text)) if text[0] == ‘/’: command, *arguments = text.split(» «, 1) response = CMD.get(command, not_found)(arguments, message) logging.info(«REPLYt%st%s» % (message[‘chat’][‘id’], response)) send_reply(response) except Exception as e: logging.warning(str(e))
Здесь CMD — словарь доступных команд, а send_reply — функция отправки ответа, которая на вход принимает уже сформированный объект Message.
Как перейти в начало канала в Телеграм. Про Телеграм
Собственно, её код довольно прост:
def send_reply(response): if ‘text’ in response: api.post(URL + «sendMessage», data=response)
Теперь, когда вся логика бота описана можно начать придумывать ему команды.
3. Команды
Перво-наперво, необходимо соблюсти соглашение Telegram и научить бота двум командам: /start и /help:
def help_message(arguments, message): response = result = [«Hey, %s!» % message[«from»].get(«first_name»), «rI can accept only these commands:»] for command in CMD: result.append(command) response[‘text’] = «nt».join(result) return response
Структура message[‘from’] — это объект типа User, она предоставляет боту информацию как id пользователя, так и его имя. Для ответов же полезнее использовать message[‘chat’][‘id’] — в случае личного общения там будет User, а в случае чата — id чата. В противном случае можно получить ситуацию, когда пользователь пишет в чат, а бот отвечает в личку.
Команда /start без параметров предназначена для вывода информации о боте, а с параметрами — для идентификации. Полезно её использовать для действий, требующих авторизации.
После этого можно добавить какую-нибудь свою команду, например, /base64:
def base64_decode(arguments, message): response = try: response[‘text’] = b64decode(» «.join(arguments).encode(«utf8»)) except: response[‘text’] = «Can’t decode it» finally: return response
command1 — Description
command2 — Another description
I:
whoisyourdaddy — Information about author
base64 — Base64 decode
BotFather: Success! Command list updated. /help
C таким описанием, если пользователь наберет /, Telegram услужливо покажет список всех доступных команд.
4. Свобода
Как можно было заметить, Telegram присылает сообщение целиком, а не разбитое, и ограничение на то, что команды начинаются со слеша — только для удобства мобильных пользователей. Благодаря этому можно научить бота немного говорить по-человечески.
UPD: Как верно подсказали, такое пройдет только при личном общении. В чатах боту доставляются только сообщения, начинающиеся с команды (/) (https://core.telegram.org/bots#privacy-mode)
- All messages that start with a slash ‘/’ (see Commands above)
- Messages that mention the bot by username
- Replies to the bot’s own messages
- Service messages (people added or removed from the group, etc.)
Для начала в Handler добавляем обработчик:
if text[0] == ‘/’: . else: response = CMD[«»](message) logging.info(«REPLYt%st%s» % (message[‘chat’][‘id’], response)) send_reply(response)
А потом в список команд добавляем псевдо-речь:
RESPONSES = < «Hello»: [«Hi there!», «Hi!», «Welcome!», «Hello, !»], «Hi there»: [«Hello!», «Hello, !», «Hi!», «Welcome!»], «Hi!»: [«Hi there!», «Hello, !», «Welcome!», «Hello!»], «Welcome»: [«Hi there!», «Hi!», «Hello!», «Hello, !»,], > def human_response(message): leven = fuzzywuzzy.process.extract(message.get(«text», «»), RESPONSES.keys(), limit=1)[0] response = if leven[1] < 75: response[‘text’] = «I can not understand you» else: response[‘text’] = random.choice(RESPONSES.get(leven[0])).format_map( ) return response
Здесь эмпирическая константа 75 относительно неплохо отражает вероятность того, что пользователь всё-таки хотел сказать. А format_map — удобна для одинакового описания строк как требующих подстановки, так и без нее. Теперь бот будет отвечать на приветствия и иногда даже обращаться по имени.
5. Не текст.
Боты, как и любой нормальный пользователь Telegram, могут не только писать сообщения, но и делиться картинками, музыкой, стикерами.
Для примера расширим словарь RESPONSES:
RESPONSES[«What time is it?»] = [«», » UTC»]
И будем отлавливать текст :
if response[‘text’] = : response[‘sticker’] = «BQADAgADeAcAAlOx9wOjY2jpAAHq9DUC» del response[‘text’]
Видно, что теперь структура Message уже не содержит текст, поэтому необходимо модифицировать send_reply:
def send_reply(response): if ‘sticker’ in response: api.post(URL + «sendSticker», data=response) elif ‘text’ in response: api.post(URL + «sendMessage», data=response)
И все, теперь бот будет время от времени присылать стикер вместо времени:
6. Возможности
Благодаря удобству API и быстрому старту боты Telegram могут стать хорошей платформой для автоматизации своих действий, настройки уведомлений, создания викторин и task-based соревнований (CTF, DozoR и прочие).
Вспоминая статью про умный дом, могу сказать, что теперь извращений меньше, а работа прозрачнее.
7. Ограничения
К сожалению, на данный момент существует ограничение на использование webHook — он работает только по https и только с валидным сертификатом, что, например для меня пока критично за счет отсутствия поддержки сертифицирующими центрами динамических днс.
К счастью, Telegram также умеет работать и по ручному обновлению, поэтому не меняя кода можно создать еще одну службу Puller, которая будет выкачивать их и слать на локальный адрес:
while True: r = requests.get(URL + «?offset=%s» % (last + 1)) if r.status_code == 200: for message in r.json()[«result»]: last = int(message[«update_id»]) requests.post(«http://localhost:8888/», data=json.dumps(message), headers= ) else: logging.warning(«FAIL » + r.text) time.sleep(3)
P.S. По пункту 7 нашел удобное решение — размещение бота не у себя, а на heroku, благо все имена вида *.herokuapp.com защищены их собственным сертификатом.
UPD: Telegram улучшили Бот Апи, из-за чего, теперь не обязательно иметь отдельную функцию для отправки сообщений при установленном вебхуке, а в ответ на POST запрос можно отвечать тем же сформированным JSON с ответным сообщением, где одно из полей устанавливается как ч ‘method’: ‘sendMessage’ (или любой другой метод, используемый ботом).
Источник: habr.com
Горячие клавиши Telegram
Представляем вашему вниманию горячие клавиши для Telegram которая используется на операционной системе Windows, MacOS, в данном описании горячих клавиш предлагается 16 самых популярных и важных быстрых клавиш. Так же на нашем портале вы можете добавить свои изменения, если считаете данные недостаточно полными или добавить новую программу с самого начала
Популярные
Ctrl + M | ⌘ + M | Свернуть Telegram |
Delete | Delete | Удалить выбранные сообщения |
Ctrl + K | ⌘ + K | Создание гиперссылки |
Ctrl + Shift + N | ⌘ + Shift + N | Отменить форматирование |
Общие
Alt + Top | Option + Top | Переключение на следующий чат |
Alt + Bottom | Option + Bottom | Переключение на предыдущий чат |
Ctrl + F | ⌘ + F | Поиск по открытому чату |
Esc | Esc | Выход из чата |
Ctrl + M | ⌘ + M | Свернуть Telegram |
Ctrl + W | ⌘ + W | Свернуть приложение в панель задач |
Ctrl + L | ⌘ + L | Заблокировать Telegram |
Ctrl + Q | ⌘ + Q | Полностью закрыть приложение |
Ctrl + Top / Bottom | ⌘ + Top / Bottom | Выбрать сообщения для быстрого ответа |
Top | Top | Редактировать последнее сообщение |
Delete | Delete | Удалить выбранные сообщения |
Ctrl + B | ⌘ + B | Выделить жирным |
Ctrl + I | ⌘ + I | Выделить курсивом |
Ctrl + Shift + M | ⌘ + Shift + M | Моноширный шрифт |
Ctrl + K | ⌘ + K | Создание гиперссылки |
Ctrl + Shift + N | ⌘ + Shift + N | Отменить форматирование |
~~~ Конец. Благодарим за просмотр. Добавить страницу в закладки CTRL + D ~~~
Дата изменения: 02.02.2019
Просмотров страницы: 12283
*Некоторые перечисленные клавиши могут не работать в старых версиях программы
Источник: hotkeysworld.com
как проматывать видео в телеграмме на компьютере
Рассмотрев возможности приложения, можно понять, как работать с видео в Телеграме: записывать и публиковать видеоролики или пересылать их в другие мессенджеры и социальные сети. Несмотря на удобное меню и стандартные настройки, я столкнулась с проблемой. Выкладывать ролики, уже созданные с помощью вебкамеры у меня получается, а делать запись в самом Телеграме нет. Решить этот вопрос получилось после того, как я разобралась в функционале мессенджера.
Телеграм и видео – что дозволено?
Приложение Телеграм уникально тем, что пользователи имеют таких помощников, как боты, да и функциональность мессенджера достойная. Стоит выделить основные полезные фишки, которые может похвастаться не каждое приложение или социальная сеть:
Последняя функция очень полезна, если человек находится в роуминге: экономия трафика. Для администраторов каналов и групп создан «Телескоп», который позволяет записывать круглые видеоролики для групп и сервис telesco.pe для публикации этих видео во внешнем вебе.
На заметку! Еще одна необычная функция, которая мне особо понравилась: можно кликнуть на микрофон и он сразу превращается в камеру. Очень удобно, если нужно срочно записать и сохранить видео.
Как записывать видео в Телеграм, отправлять и удалять его?
Следующая инструкция подскажет, как записать видеоролик в Телеграме и при необходимости удалять его. Рассмотрим пошаговый алгоритм:
Запись ведется с фронтальной камеры, но в настройках можно поменять ее на основную. Также не всем пользователям неудобно постоянно держать палец на кнопке записи. Чтобы этого не делать, можно кликнуть на пиктограмму «замочек», которая расположена чуть выше и зафиксировать процесс записи.
Вместо замка появится красный квадрат, с помощью которого потом можно остановить съемку.
Как пересылать видео из Телеграма в другие мессенджеры и соцсети
Следующая инструкция расскажет, как из Телеграма переслать в Ватсап видео и другие файлы. Для этого даже не обязательно находиться в мессенджере. Шаги:
Аналогичным способом можно перебрасывать ролики в Инстаграм, Одноклассники, Ватсап и даже отправлять обычным сообщением абоненту через мобильного оператора.
Главные причины и ошибки в работе с видео в Телеграм
Основные причины и ошибки в работе мессенджера обусловлены несколькими моментами: системный сбой, плохое интернет-соединение или смартфон обновляет ПО. Я, например, не сразу смогла разобраться, как с Телеграм перекинуть видео на Инстаграм, потому что у меня не высвечивался этот значок, когда зажимала поделиться. Мне пришлось пойти другим путем: я зашла в Инстаграм и загрузила видеоролик вручную, выбрав его в галереи телефона, где он был уже сохранен. Также иногда возникают проблемы с оправкой файлов внутри мессенджера. Существует несколько действенных методов решения проблемы:
На заметку! Удалить файл в Телеграм легко. Для этого требуется отчистка кеша самого приложения: заходим в диспетчер задач, находим приложение, кликаем по иконке и чистим память.
Способы сохранить видео из Телеграма
Способы поиска видео в Телеграме
Качаем видео из Телеграм: пошаговая инструкция
Видеоролики в Телеграм: как их отправить другу?
Учимся быстро и просто отправлять видео в Одноклассниках
Как проматывать видео в телеграмме на компьютере
Искать видео в приложении можно с помощью встроенного поиска по запросу. В телеграме используется два вида: круглые и стандартные. Обычные имеют форму квадрата или прямоугольника.
Как отправить или получить видео в телеграмм?
Существуют некоторые моменты по отправке разных video с различных устройств.
Стандартное (для ПК).
Android.
Инструкция для телефона андроид:
Режим «картинка в картинке» позволяет смотреть видео в чате смартфона поверх всех окон. Для этого нужно запустить видео и вверху или низу кликнуть превью (закрашенный прямоугольник в рамке). Размер окошка зафиксирован и его можно перетаскивать.
Круглые видео.
Video в телеграм с компьютера в кружочке на данный момент отправить нельзя.
Инструкция по отправке видео в телеграмме в кружочке для телефона.
Сделать круглое видео в андроиде, так:
Отмена загрузки – движение пальцем, удерживающим кнопку, влево или кнопка «отменить» внизу. Для переключения обычной камеры на фронтальную, жмите стрелку в нижнем левом углу.
Сообщение без нажатия функции автозаписи отправляется в чат автоматически.
Снять и отправить video в кружке на iPhone.
Отменить – провести влево по строчке. Изначально запись идет на фронтальную камеру. Переключиться на основную – жмем на иконку фотоаппарата со стрелкой. Продолжительность видео – одна минута. Удалить video в круге или стандартное путем нажатия и удержания на нем и отправить в появившуюся вверху корзину.
Для аудио – процедура аналогична за исключением использования иконки микрофона.
Как скачать, сохранить, смотреть video из Телеграм?
Воспроизвести и посмотреть видео можно путем нажатия на него. Приложение мгновенно воспроизводит файл. Если не воспроизводится или долго грузится – проверить скорость интернета. Делать это нужно также, когда не грузятся или долго загружаются видеофайлы.
В приложении Telegram доступна функция скачать videos.
Видеофайлы на многих смартфонах сохраняются автоматически. На устройстве заходим в папку Telegram запускаем файл.
Более подробная инструкция для сохранения файлов вручную на телефон представлена ниже.
На Android.
На Айфон.
Как скачать видео на ПК?
Применяем следующую последовательность действий:
При скачивании можно изменить расширение с «mp4» на «gif». Также можно скачать video в определенную папку на компе. При наведении курсора на видео и нажатии правой кнопки мыши появляется дополнительное окно, выбираем «Сохранить видео как», указываем путь сохранения и расширение файла, жмем «Сохранить». Скачать аудио из телеграмма можно аналогичным образом.
Как скачать через бот в ютуб и вк?
Видео с ютуба и вк можно скачать через телеграм с помощью специальных ботов.
Повторите следующие шаги:
Следуйте инструкциям по работе с видео, затруднений не возникнет. Откуда скачивать, куда сохранять, как просматривать – выбирайте подходящий вариант.
Бесшумные сообщения перемотка видео и таймер для спамеров: в Telegram появились новые полезные функции
Теперь есть возможность отправки сообщения без звука, даже если он включен в приложении адресата. Для этого просто задержите кнопку «отправить», и сообщение отправится бесшумно. Эта функция полезна для тех, кто любит писать по ночам, но опасается разбудить получателя сообщения. Она также работает в чатах.
Для администраторов групп появилась функция Slow Mode. Если администратор включил этот режим в группе, то участник группы может отправлять сообщения с выбранным администратором интервалом. Таймер покажет, сколько еще ждать перед отправкой следующего сообщения. Это помогает бороться со спамерами в чатах.
При перемотке видео теперь будет отображаться миниатюрное превью, которое поможет найти нужный момент. Если добавить в подпись к видеозаписи метку времени (например, 0:32), она автоматически выделится как ссылка. Нажатие на метку времени позволить просматривать видео с нужного места. Это также работает, если вы указали отметку времени при ответе на сообщение с видеозаписью.
Появились анимированные емодзи: ❤️
Обновилось меню вложений для Android. Превью стали большими, что упрощает выбор фотографий и видео, а листнув вниз, можно увидеть всю галерею. А еще пользователи iOS теперь могут выбирать различные цвета для ночных тем, а не только существующие до этого серый и синий.
Чтобы пользоваться новыми функциями на мобильных устройствах мессенджер нужно обновить до версии 5.10, а на Windows и macOS до 1.8.
Обновление Telegram: проигрывание видео без загрузки и автоматический ночной режим
Мессенджер Telegram получил очередное обновление. Версия 4.8 дарит пользователям несколько важных улучшений и уже доступна в Google Play.
Главное нововведение обновлённой программы — мгновенное воспроизведение роликов. Теперь для просмотра не нужно ждать загрузки. Вместо этого сразу нажимаем кнопку старта.
Приложение также научилось автоматически активировать тёмную тему. Это произойдёт после наступления темноты или просто в условиях плохой освещённости. Активировать функцию получится в настройках.
Разработчики добавили виджет логина. Теперь пользователи могут авторизоваться на сторонних ресурсах с помощью учётной записи Телеграма. При использовании виджета в первый раз придётся ввести номер телефона для получения письма-подтверждения.
Версия 4.8 уже доступна в магазине приложений. Альтернативную версию Telegram X скачивайте по ссылке.
Новости, статьи и анонсы публикаций
Свободное общение и обсуждение материалов
Chrome – пожалуй, самое популярное приложение Google, независимо от платформы. Пользователи любят фирменный браузер поискового гиганта за его логику и удобство. Во всяком случае, других причин им пользоваться лично я не вижу. Он далеко не самый быстрый, не самый лёгкий, а применительно к мобильной версии ещё и не самый функциональный.
Ведь расширения, которые доступны на десктопах, на смартфонах не действуют – видимо, чтобы окончательно не портит впечатление о быстродействии браузера. Но ведь есть и другие проблемы.
Немногие об этом думают, но в целом общение в мессенджерах намного более безопасно, чем по SMS. Возьмите любой мессенджер, и он будет гарантированно шифровать переписку, в отличие от эсэмэсок, которые отправляются вообще без защиты. Поэтому, если перед вами стоит выбор, отправить сообщение в Вайбере или написать SMS, пожалуй, лучше воспользоваться первым. Так будет и удобнее, и безопаснее. Тем не менее, полагаться на мессенджеры на 100% тоже не следует, потому что часть из них довольно небезопасны.
Источник: doma35.ru