QRCode Bot
Bot for create QR codes
Бот для создания QR кодов
What can do this bot?Telegram bot that create QR code of your text or link. Send a JPG photo and PNG or SVG document in high definition. Just send a command /qr or /qrsvg.
— Now available inline mode! Just type @qrqrbot. at any chat
—Added a qr code decoder, you can send me a photo with qr code and i send you a text
More features soon
Rate me by this link: https://telegram.me/storebot?start=qrqrbot, press «start» and click a 5 stars for me 😊😚
Bot Commands
A command must always start with the ‘/’ symbol.
/qr Generate QR code for text or link on PNG format /qrsvg Generate QR code for text or link on SVG format /help Show list of all commands /about Info about bot and developers /feedback Send a message for developers
Inline Bot
Call this bot by typing its @username and a query in the text input field in any chat.
@qrqrbot text or link for generate QR code
Share this bot
Бот для создания QR кодов» data-rank=»500″ data-nickname=»qrqrbot» data-image=»/netcat_files/6/7/preview_21843_1540639836.jpg» data-item_id=»21843″ data-status=»Ok» data-official=»» data-platform=»8″ data-platform-name=»Telegram» data-keyword=»qrqrbot» data-description-en=»Bot for create QR codes
Бот для создания QR кодов» data-message-wellcome=»Telegram bot that create QR code of your text or link. Send a JPG photo and PNG or SVG document in high definition. Just send a command /qr or /qrsvg.
— Now available inline mode! Just type @qrqrbot. at any chat
—Added a qr code decoder, you can send me a photo with qr code and i send you a text
QRCode Bot
Bot for create QR codes
Бот для создания QR кодов
What can do this bot?Telegram bot that create QR code of your text or link. Send a JPG photo and PNG or SVG document in high definition. Just send a command /qr or /qrsvg.
— Now available inline mode! Just type @qrqrbot. at any chat
—Added a qr code decoder, you can send me a photo with qr code and i send you a text
More features soon
Rate me by this link: https://telegram.me/storebot?start=qrqrbot, press «start» and click a 5 stars for me 😊😚
Bot Commands
A command must always start with the ‘/’ symbol.
/qr Generate QR code for text or link on PNG format /qrsvg Generate QR code for text or link on SVG format /help Show list of all commands /about Info about bot and developers /feedback Send a message for developers
Inline Bot
Call this bot by typing its @username and a query in the text input field in any chat.
@qrqrbot text or link for generate QR code
Share this bot
Бот для создания QR кодов» data-rank=»500″ data-nickname=»qrqrbot» data-image=»/netcat_files/6/7/preview_21843_1540639836.jpg» data-item_id=»21843″ data-status=»Ok» data-official=»» data-platform=»8″ data-platform-name=»Telegram» data-keyword=»qrqrbot» data-description-en=»Bot for create QR codes
Бот для создания QR кодов» data-message-wellcome=»Telegram bot that create QR code of your text or link. Send a JPG photo and PNG or SVG document in high definition. Just send a command /qr or /qrsvg.
— Now available inline mode! Just type @qrqrbot. at any chat
—Added a qr code decoder, you can send me a photo with qr code and i send you a text
Telegram bot для проверки сертификата о вакцинации от COVID-19 по QR-коду
Сегодня везде требуют QR-код о вакцинации, кроме аптек и продуктовых магазинов. Поэтому решил написать telegram бота для быстрой проверки QR-кода.
Отправляете боту QR-код, в ответ получаете информацию с официального портала Госуслуги:
-срок действия сертификата
Надеюсь, что многим бот будет полезен.
Сам бот: @QR_Code_Covid_bot
мммм, обернул библиотечку декодирования куаров в бота. молодец, возьми пирожок с полочки.
Команды в телеграм ботах
В ботах часто используются команды вида “/command”, которые провоцируют бота на то или иное действие.
Кто уже создавал ботов мог видеть их в @botfather.
Давайте разберемся как создать этот список команд и присвоить каждой ту или иную функцию.
С созданием списка команд все довольно просто, это реализуется непосредственно в настройках бота через @BotFather:
1) Вводим команду /mybots
2) Видим список наших ботов
3) Выбираем тот бот, которому присвоим список команд
4) Кликаем Edit Bot
5) Кликаем Edit Commands
Далее, следуя формату, отправляем список команд, например:
Теперь если мы введем “/” в чате с нашим ботом, то он предложит список команд. Проверяем, что список есть:
Добавим логику нашим командам
Как уже видно из описания команд, я хочу отправить в чат клавиатуру.
Создам новую ГТ и перейду к написанию скрипта
Назову файл doPost, здесь будет только эта функция
Добавлю следующий скрипт:
let update = JSON.parse(e.postData.contents);
let msg = update.message;
let msg_array = msg.text.split(» «);
let user = msg.from.username;
if (text == «/getkeyboard») <
Demo.send_key(«Галочки», chat_id, API, keyboard)
Demo.send(«Клавиатура сохранена”, chat_id, API)
Все! Для каждой команды теперь добавлен функционал.
Хорошо, расскажу поподробнее))
Итак, если текст сообщения == “/getkeyboard”, мы отправляем в чат некую клавиатуру.
Если мы отправили боту команду “/save”, то он ответит нам сообщением “Клавиатура сохранена”.
Подробно функции send и send_key, а также библиотека Demo рассматривались в постах ранее. Вот ссылки:
Дабы не перегружать дорогого читателя инфой, остановлюсь здесь)
Как всегда жду фидбека и вопросиков ^^ Всегда рады пообщаться!
Госуслуги такие госуслуги
Типы клавиатур в чат ботах
Сегодня познакомимся с существующими клавиатурами в ботах и тем, как их подключить и настроить.
Всего есть два типа клавиатур:
ReplyKeyboardMarkup используется в случаях, когда вы хотите получить от пользователя конкретный ответ, предоставляя ему возможность не печатать ручками, а выбрать из предлагаемых вариантов. Иными словами, это заготовки текстовых сообщений. Расположены кнопки под полем ввода сообщения
В зависимости от выбранной кнопки могут последовать те или иные действия. Эту логику мы задаем в скрипте для каждой кнопки.
В приведенном примере мы хотим записать пользователя на маникюр и предлагаем ему определиться с днем (в качестве примера приведены только два варианта, но это можно закастомить).
После выбора того или иного дня бот внесет инфу в ГТ, а именно: дату, имя пользователя и ид чата.
Запись через чат имеет следующий вид
Здесь мы выбрали кнопку Сегодня и получили ответ от бота.
В ГТ при этом появилась строчка
Подключение и настройка
Каждая клава (инлайн-клавиатур может быть сколько угодно) записана в соответствующую переменную:
[«Записаться», «Отменить запись»]
Обратите внимание, что синтаксис для инлайн (INLINE_Days) и обычной (KEYBOARD) клавиатур различается.
Клавиатурам можно добавить дополнительные свойства, мы использовали только resize_keyboard со значением true. Их не так много и они есть в документации телеграма.
Далее в коде обращаемся к клавам по имени переменной.
С ReplyKeyboardMarkup все достаточно просто. Она добавляется при первом прогоне скрипта, когда вы отправляете в чат команду /start, например.
Нам нужна функция, которая отправит в чат клавиатуру. Функция та же, что и при отправке сообщения ботом send(), за двумя исключениями:
Ниже скрипт функции отправки обычной клавы в чат:
function send_key (msg, chat_id, api, keyboard)
Вызов функции осуществляется из тела функции doPost(e) одной строкой:
send_key(«Поехали», chat_id, API_TOKEN, KEYBOARD)
Что касается инлайн-клавиатур.
Отправка клавиатуры наступает при определенном условии. Если пользователь отправил в чат слово “Записаться”, то отправляем ему нашу инлайн-клаву:
if (text == «Записаться») <
Demo.send_key(«Выберите день», chat_id, API_TOKEN, INLINE_Days)
Переменная text содержит текст сообщения, которое мы и проверяем на соответствие.
Результатом выполнения функции send_key будет сообщение от бота Выберите день и кнопки под ним.
Далее нужно предусмотреть алгоритм обработки нажатия этих кнопок.
Если мы кликаем на какую-либо из кнопок (“Сегодня” или «Завтра»), то добавляем новую строку в ГТ и отправляем сообщение в чат, что запись создана.
let date = Demo.getNewDate(0);
let ind = get_ind(chat_id);
Demo.send(«Вы успешно записались. «+»Дата визита: «+ date, chat_id, API_TOKEN);
Ниже скрипт полностью (не забываем, что значения глобальных переменных у вас будут свои):
// Объявляем все нужные нам переменные. Док важно открывать именно по ID, а не брать активный док, т.к. запуск кода будет производить бот
const API_TOKEN = «1946675042:AAHg1HTHe42GhR9EEt0EdbR94j1G8pDcTWE«;
const DOC = SpreadsheetApp.openById(«1ALJLtLdt-LT7GEF4hawIizVeJXFnoPZCsC0pw7kcp70«);
const Clients = DOC.getSheetByName(«Clients»);
const Calendar = DOC.getSheetByName(«Calendar»);
var update = JSON.parse(e.postData.contents);
var msg = update.message;
var msg_array = msg.text.split(» «);
var user = msg.from.username;
if (text == «Записаться») <
Demo.send_key(«Выберите день», chat_id, API_TOKEN, INLINE_Days)
if (text == «Отменить запись») <
let ind = get_ind(chat_id);
Demo.send(«Запись отменена», chat_id, API_TOKEN)
var text = update.callback_query.message.text;
var user_name = update.callback_query.from.username;
let date = Demo.getNewDate(0);
let ind = get_ind(chat_id);
Demo.send(«Вы успешно записались. «+»Дата визита: «+ date, chat_id, API_TOKEN);
let date = Demo.getNewDate(1);
let ind = get_ind(chat_id);
Demo.send(«Вы успешно записались. «+»Дата визита: «+ date, chat_id, API_TOKEN);
Отдельно ниже представлена доп функция, которая проверяет наличие ид в ГТ. Если ид уже есть в таблице, мы обновляем данные у строки с этим ид. В противном случае создаем новую строку.
let chat_id = 311157431;
let arr = Clients.getRange(1,2,Clients.getLastRow()).getValues()
let ind = arr.indexOf(chat_id)
ID для подключения библиотеки Demo: 1JkXEW_zfhr6v0TKsvU_ZbygNLpXEczxZcC46fMF_ffk-noMk8UKcMitz
Здесь также заметим, что клик по кнопке в инлайн клавиатуре отправляет боту JSON со свойством callback_query. Это значит, что нам нужны дополнительные переменные, в которые мы запишем значения из этого JSON пакета.
Это краткая вводная в мир клавиатур. Скоро будут посты про простые сервисы, куда будут добавлены и доработаны те же клавиатуры и доп функции.
Что это такое ваш QR-код?
Знакомый сегодня рассказал. Далее с его слов.
Намылился я сходить в школу к директору по делам ребёнка. Меня сразу предупредили, нужен QR код, без него не пускают. И взяло меня любопытство, как они эти Qr-коды проверяют? Сам то я вакцинирован, но решил таки проверить. Скачал на шару левый QR-код с интернета и при входе предъявил грозному охраннику, когда он попросил об этом. Спокойно прошёл..короче, нет у них никакого сканера в глазу, врут все…
Чат с прогнозом погоды и триггеры в гугл таблицах (GS6)
Глобально задача в следующем:
Отсюда я забрал прогноз:
Подробнее о том как спарсить данные с сайта в таблицу в этом посте: Парсинг данных с сайтов в гугл таблички (GS1)
Тут приведу только формулу:
Для этого нам необходимо сохранять ид чата отдельно в таблице и обращаться к этому значению как к значению переменной chat_id.
Соответственно, нам нужна функция, которая будет это делать:
//записывает ид чата в таблицу
Demo.send(«ID записан», chat_id, API_TOKEN);
Вызывать ее мы будем из тела функции doPost(e) при условии, что боту отправлена команда /link. В коде это выглядит вот так:
Теперь соберем все вместе и сформируем сообщение для отправки в чат.
Все, что в кавычках, должно быть изменено на ваши значения.
Функция для подключения веб хука:
Функция link(chat_id) для запоминания id чата
Функция daily() для формирования и отправки прогноза в чат:
На данный момент функция daily() не вызывается другой функцией или командой типа /link или /hello.
Мы добавим триггер, который будет вызывать функцию автоматически каждое утро.
Переходим на вкладку Triggers
Добавляем новый триггер
В окне задаем необходимые параметры.
Результат работы скрипта ниже.
Дополнительно: триггеры на то и триггеры, что работают автономно (без участия пользователя или разработчика, с закрытым доком или чатом. В любой ситуации сообщение будет отправлено в чат в установленное время с установленной частотой.
Создание библиотеки в гугл скриптах
В Гугл скриптах, как и в других языках программирования, есть возможность использовать библиотеки.
Что такое библиотека? Это набор функций и методов, которые часто используются программистами в разных программах. Чтобы не создавать одну и ту же функцию дважды или больше раз, достаточно один раз сохранить ее в библиотеку и подключать библиотеку к новому коду с уже написанными стандартными функциями.
В посте про создание телеграм бота мы использовали только три функции, и эти функции стандартные для любого бота. Следовательно, чтобы при создании второго, третьего… десятого бота не переписывать эти функции снова и снова, давайте просто сохраним их в библиотеку.
Создаем новые ГТ и скрипт в ней
Пропишем функцию send(msg, chat_id) :
function send (msg, chat_id, api) <
//Отправляет сообщения в тлг. На вход функции дать сообщение и ID чата, в который нужно провести отправку
UrlFetchApp.fetch(‘https://api.telegram.org/bot’ + api + ‘/’, data);
Сохраняем проект и делаем деплой
Кликаем по шестеренке и выбираем Library
Кликаем Deploy внизу окна и видим ссылку на библиотеку
Создаем новые гугл таблицу и скрипт. В скрипте прописываем глобальные переменные
Помним, что значения этих переменных у вас будут свои.
Попробуем добавить тот же функционал, что и в посте про создание бота, с отправкой сообщения в чат телеграма. Но в этот раз мы не будем создавать функцию send(), а подключим библиотеку, в которой она уже есть.
В открывшемся окне вставляем ID библиотеки (не ссылку, а ид) и кликаем Look up
Если подключение библиотеки прошло успешно, в окне появятся дополнительные поля выбора версии и указания идентификатора.
Название идентификатора меняем на короткое и понятное и кликаем Add.
В результате в списке библиотек видим новую библиотеку
Напоминаю, что в библиотеке у нас 1 функция. К ней можно обратиться следующим образом: имяБиблиотеки.имяФункции
Когда вы прописываете имя библиотеки и ставите точку, вы видите список всех доступных функций. В нашем случае это только функция send. Выбираем ее и прописываем передаваемые параметры:
Demo.send(«Hello World», chat_id, API_TOKEN)
Сохраняем проект, кликаем Deploy, обновляем Api_link, выполняем функцию api_connector и идем тестить работу этого бота (этот алгоритм действий также подробнее описан в статье про создания бота).
Новый бот отправляет сообщение в чат с помощью функции, которая зашита в библиотеке.
Таким образом, в ту же библиотеку можно добавить ряд стандартных функций и к новым скриптам подключать уже написанные функции, не создавая их снова.
Комбинация из ТЛГ и ГТ, простота подключения КМК делает из ГТ офигенный инструмент автоматизации.
Пост ориентирован прежде всего на людей, которые только познают ГТ и на первых порах не требует знания гугл скриптов. В этом посте будет только первичная настройка и подключение. В следующих постах рассмотрю всё что описал выше (как трекать время, задачи, финансы и т.д. и как это настроить под себя).
Для начала находим отца всех ботов @botfather в телеге.
После старта бота botftaher выведет список команд. Здесь нам интересна команда создания нового бота /newbot.
Порядок очень простой: создать бота, назвать его человеческим языком, задать ему username. В результате получаем API токен нашего бота (1860347610:AAH1q6eqTPnVh0qe6mQWidNSTELcprXEfOk). Он-то нам и нужен.
Должно получиться вот это:
Затираем дефолтный код и вставляем следующий скрипт:
const API_TOKEN = ‘1860347610:AAH1q6eqTPnVh0qe6mQWidNSTELcprXEfOk‘
const DOC = SpreadsheetApp.openById(‘10W0T9eOP_NN_6g4qyEJzWjm4nkKRN2vyUOnpx73f-N0’);
var update = JSON.parse(e.postData.contents);
//нам нужен только тип «сообщение»
var msg = update.message;
var msg_array = msg.text.split(» «);
var user = msg.from.username;
if (msg_array[0] == «/hello») <
send(«Hello World», chat_id)
function send (msg, chat_id) <
//Отправляет сообщения в тлг. На вход функции дать сообщение и ID чата, в который нужно провести отправку
UrlFetchApp.fetch(‘https://api.telegram.org/bot’ + API_TOKEN + ‘/’, data);
Обращаем внимание на переменные DOC и API_TOKEN (выделено жирным). Значения переменных необходимо исправить на ваши значения.
1) меняем ID гугл таблицы (находится в строке адреса после /d/)
2) меняем токен бота, который мы получили при его создании выше
Круто! Львиная доля работы уже проделана.
Следующим важным моментом является регистрация вебхука (webhook).
Добавим следующий код к нашему скрипту:
Сохраняем наш код и кликаем Deploy.
В открывшемся окне кликаем по шестеренке и выбираем Web app
В поле Who has access выбираем Anyone
При первом запуске приложение попросит авторизации. Проделываем это упражнение.
Здесь нам нужен URL в самом конце. Копируем его и вставляем в качестве значения переменной App_link.
Теперь функция должна выглядеть следующим образом:
Снова сохраняем код и запускаем функцию api_connector:
И наконец переходим к боту в телеге! Запускаем, отправляем команду /hello и видим результат.
Теперь подробно по коду. В коде всего 3 функции:
В нашем случае, если мы отправляем команду /hello, бот отвечает Hello World, вызывая функцию send. Это все его действия.
Telegram закрыл крупнейший в Италии канал противников вакцинации от коронавируса
Крупнейший в Италии канал противников вакцинации от коронавируса — Basta Dittatura (ит. «Хватит диктатуры!») — был закрыт модераторами Telegram из-за разжигания ненависти к врачам, которые проводят вакцинацию населения, сообщает Telegram-чат Durov.
В сообщении также указано, что канал был заблокирован по требованию прокуратуры Турина, который признал Basta Dittatura разжигающим ненависть.
Ранее основатель Telegram Павел Дуров объяснил блокировку агитационных ботов действиями Google и Apple.
Как я в Испании со Спутником V получил европейский сертификат о вакцинации
Просто тупо не ходил по СМСам. Я не хожу, а они шлют и шлют. Вот какая вакцина поступила, на такую и шлют. Даже звонили два раза, всё объяснял, а они шлют.
24 часа ждать не ждал, прикинул, когда базы данных обновятся, сразу после полуночи полез и скачал европейский сертификат.
Делюсь своим погодным ботом без уведомлений
Последние полгода в свободное время писал погодного бота.
Возможно, бот будет полезен на устройствах с небольшим количеством памяти.
Основная идея была в том чтобы бот не присылал ни одного уведомления,
вместо этого он обновляет сообщения с прогнозом.
Интересно ваше мнение, предложения, критика.
Ключевые особенности бота:
✅ Присылает 3 сообщения с погодой (на 7 дней, сегодня, сейчас)
✅ Редактирует сообщения («7 дней» и «сегодня» раз в сутки; «сейчас»: каждый час)
✅ В любой момент можно отправить название города,
бот пришлет погоду в этом городе
✅ Если населенных пунктов с таким названием несколько,
бот пришлет варианты с мини картой на выбор
✅ Можно создать виджет на рабочем столе
Так выглядит прогноз:
🪁- ветер и его направление
Себе добавил вот такой удобный виджет.
Работает как на Android так и на iOS.
1) Долгий тап по пустому месту на рабочем столе
2) Появляются доп. настройки
3) Нажать «виджеты», найти раздел «Telegram»
4) Выбрать виджет 4×2
5) В настройках виджета выбрать чат с ботом
Благодарю за внимание!
Ps: готов к критике, отзывам, улучшениям
Можно также писать на почту: weatherisbot@gmail.com
Дописал бота для скачивания с Youtube, Instagram, Spotify, SoundCloud и тд
Недавно дописал бота, который был у меня в долгом ящике, надеюсь будет кому-то полезен
Бот может скачивать:
1️⃣Видосы из TikTok(без ватермарок).
2️⃣Посты, стори, IGTV, Reels с Instagram.
3️⃣Плейлисты, Shorts, видео(до 10 часов) с Youtube.
4️⃣Треки, плейлисты, альбомы, лайки по профилю SoundCloud.
5️⃣Треки, плейлисты, альбомы YouTubeMusic и Spotify.
6️⃣Голосовые сообщения, стикеры, видеосообщения Telegram.
Буду рад любому фидбеку\предложению\пожеланию\(может даже багу)
Список для добавления в бота(по запросу пользователей):
1. Выбор качества, и формата скачивания с ютуба
2. Скачивание с ВК
3. Скачивание с сервисов Яндекса
4. Скачивание Торрентов
5. Скачивание с Пикабу
6. Скачивание с Реддита
7. Предлагайте своё
Отсутствие электронного сертификата о вакцинации на Госуслугах
Чуть больше года назад я писал (1 и 2) про то, как трудно болеть коронавирусом, взаимодействую с нашей прекрасной медициной. В некотором роде продолжение истории. Сказ о том, как вакцинироваться и не получить электронный сертификат вакцинации.
Будет многобукв, поэтому сначала выжимка: ни 1-я, ни 2-я дозы никак не отобразились в моей подтверждённой учётной записи Госуслуг. На mos.ru и ЕМИАС пресловутый QR-код «для ресторанов» (хотя на сегодняшний момент для ресторанов уже не нужен) присутствует. Поддержка Госуслуг отправляет в Департамент здравоохранения Москвы, департамент говорит «иди на mos.ru и получай свой QR» (который НЕ является электронным сертификатом). Поддержка Деп.здрава в ВК отправляет в Госуслуги. Поддержка Госуслуг ВК МЕНЯ ЗАБАНИЛА НЕ ОТВЕТИВ (писал вежливо). Поликлиника кое-как отвечает, но итога нет. Замкнутый круг.
Зачем мне сейчас электронный сертификат вакцинации? Чтобы поехать в долгожданный отпуск в Турцию и не платить за ПЦР по пути туда и по возвращении. И наверняка пригодится при очередных ограничениях.
Дальше подробнее про N кругов ада.
Вакцину колол (получал? принимал?) в мобильной бригаде в ТЦ «Ереван Плаза». Обслуживает эту точку Поликлиника № 46, о чем сообщает печать на бумажной версии сертификата:
Пишу письмо на doc@mosgorzdrav.ru, приходит отбивка:
Помимо этого отправил обращения в электронную приемную мэра и Минздрав. Пока ответа нет.
Тем временем на Госуслугах изменилась формулировка на странице вакцинации:
Получается, что таких бедолаг, как я, в Москве почти миллион (20% от 4+млн вакцинированных на сегодняшний день). Из новой информации почерпнул некий «Статус ЕПГУ» в реестре вакцинированных. Гуглил, в открытом доступен нашел внутреннюю инструкцию для мед.учреждений, в которой описаны действия по передачи статуса из реестра на Госуслуги. Даже со скриншотами
Тем временем обсуждаем потенциальный отпуск в Турцию и перспективы взыскания через суд с Деп.здрава / Госуслуг стоимости вынужденного ПЦР.
У кого есть положительный/отрицательный опыт с электронными сертификатами? Делитесь лайфхаками.