Анализ токенов в Телеграмме

Изначально Telegram был обычным мессенджером для базовой отправки сообщений. Чуть позже он начал обрастать новыми функциями. Многим Телега начала заменять другие социальные сети и даже самые разные сервисы интернета.

Чем полезен Telegram

На сегодняшний день, Телеграм — это огромный интернет-комбайн, где можно:

  • Вести переписки, как в открытых чатах, так и в приватных (статья о секретном чате)
  • Читать новости или потреблять другой контент с помощью каналов
  • Загружать и скачивать файлы, тем более недавно появился менеджер загрузок
  • Совершать купле-продажу разных типов товаров (даже писали об этом вот тут)
  • Слушать музыку

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

TON COIN ВСЕ ЧТО ТЫ ДОЛЖЕН ЗНАТЬ, ПРЕЖДЕ ЧЕМ ПОКУПАТЬ l Монета от Телеграмма

Без помощи ботов это было бы сделать очень затруднительно. Если проще, то боты в Telegram автоматизируют какое-либо действие.

Впрочем, ранее мы уже писали о популярных ботах в Телеграме вот здесь.

Создание бота в Telegram: пошаговая инструкция

поиск бота в telegram

Нажимаем «Запустить», и в ответном сообщении сразу присылается меню. Оно на английском, но ничего сложного нет.

Выбираем /newbot, далее в сообщении пишем название своего нового бота.

задаем имя бота

Далее указываем username бота, по которому его можно будет найти, обязательно чтобы юзернейм заканчивался на «bot».

Наше рабочее название будет «GTOnidzuka_bot», далее мы его переименуем. Если юзернейм занят, то выбираем другой. Также BotFather присылает уникальный ключ, подобие пароля от бота, его никому нельзя показывать.

После того выбора имени нашего бота можно найти в поиске Телеграм или зайти на него по ссылке.

поиск бота в telegram

Теперь нам доступно редактирование бота. С помощью команд можно изменить аватарку, общее название, описания и т.д. Также в боковую кнопку «Меню» можно зашить ссылку на сайт или социальную сеть.

Основные команды в BotFather:

  • /setname — изменить имя бота
  • /setdescription — изменить описание бота
  • /setuserpic — изменить аватарку бота
  • /setcommands — задать команды для бота
  • /deletebot — удалить бота

Наш бот создан и отображается в поиске, но пока еще ничего не умеет.

Больше статей на схожую тематику:

  • Посевы ВКонтакте: полный гайд для запуска
  • 10 советов, как написать пост в блоге, чтобы его комментировали
  • Успеть за 24 часа: как работают сторис ВКонтакте

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

TON — Скам или новый биткоин?

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

Для начала переходим на официальный сайт и пролистываем вниз страницы, где есть кнопка со ссылкой в Телеграм.

сервис для менеджемта бота

Итак, попадаем в Телегу к Manybot и там имеется русский интерфейс, что очень радует.

стартовое окно manybot

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

подключение канала к боту

Для теста мы создали новый канал. Но если есть уже хороший раскрученный канал, то можно внедрить и его.

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

назначение бота администратором канала

Для подключения канала к боту, нужно отправить тестовое сообщение. И да, нам пришло уведомление в канале. Простейшие функции уже работают.

Теперь мы можем настроить автопостинг, отложенный постинг и создавать другие команды.

Окей, давайте создадим парочку команд:

Еще по теме:  Как Телеграмме сделать закрытый чат

Первая команда будет отправлять ссылку на наши услуги. Для этого заходим в «Отца ботов», печатаем /setcommands и выбираем нашего бота. Также можно воспользоваться кнопками меню, кому как удобнее.

добавление команд для бота

В строке пишем название команды, оно может быть любым, главное на латинице и через тире пишем описание команды, у нас это «Услуги и цены», далее нажимаем «Сохранить».

добавление новой команды

Команда создана, но она пуста. Теперь ей нужно задать действие. Для этого переходим в наш бот, далее в «Пользовательские команды», среди них выбираем наш «bang» и жмем «Редактировать ответы команды».

редактирование действий команды

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

добавление сообщения к команде

Теперь при вызове команды /bang, в ответе будет ссылка на наш сайт.

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

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

добавление вопроса на команду

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

примеры кнопок в боте

А вот и новые ответы на форму:

ответы на форму

Если пользователь тапнет на «Хочу заказать услугу», то пользователя можно найти и написать ему.

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

пример работы обратной связи

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

На этот раз добавили команды для всех подразделов нашего блога. Перед этим добавив команду /blog, она будет корневой.

Для удобства и лучшего восприятия все команды заканчиваются на blog, так как если мы решим добавить команды с услугами, будет проще в них ориентироваться.

добавление списка команд

Нравится статья? Тогда смотрите наши курсы!

  • Курс «SMMщик с нуля: от чайника до профи»
  • Мини-курс «Как продавать в соцсетях»
  • Вебинар «Контент, который продает»

Итак, у нас есть много команд, которые мы будем обрамлять в удобные кнопки меню. Но сперва «зашиваем» в команды ссылки на наши подразделы блога как это описано выше.

Для добавления кнопок жмем на «Пользовательские команды», а далее кликаем на «Настроить главное меню».

Затем нажимаем на «Добавить пункт меню». Из ранее добавленных команд выбираем доступную, задаем ей имя, которое будет отображаться и кликаем «Сохранить».

добавление пунктов меню

Таким образом мы добавили кнопки для всех основных команд. Также добавили кнопки социальных сетей и контактов.

Вот так теперь выглядит наш бот.

кнопки контактов

При переходе в социальные сети появляются их кнопки:

кнопки социальных сетей

А при переходе в блог сперва появляется опрос:

опрос в блоге

Конечно, не совсем логично, новичкам сперва бы блог почитать, но от постоянных читателей нам важен фидбек.

И далее появляются его подразделы.

подразделы блога в боте

В целом, если публиковать статьи в том же Telegraph и добавлять их в бота, то материалы можно читать, даже не выходя из Telegram.

Если зайти с другого аккаунта, бот отображается вот так:

вид бота из другого аккаунта

Наш бот подключен к тестовому каналу, через него (бота), можно отправлять сообщения пользователям. К примеру, оповещение о новой записи в блоге, например.

Для этого в главном меню бота нажимаем на «Отправить новое сообщение пользователям», печатаем наше сообщение и жмем «Отправить пост подписчикам».

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

постинг сообщений на канал

Спустя пару секунд придет уведомление о новой статье в блоге.

Также мы прикрутили автопостинг с помощью RSS-ленты. Кстати, в одной из наших статей писали, что это и как ее подключить, рекомендуем прочесть здесь.

Помимо RSS, можно подключить и Youtube.

подключение автопостинга в боте

Примеры роста кликов, конверсий, заказов и прибыли:

  • Привлечение лидов на курс SMM по 7 рублей
  • Создание, оформление и ведение сообщества ВКонтакте для туристической компании
  • Свыше 88 000 показов с ограниченным бюджетом

Так просто?

Вуаля — теперь наш совсем простой бот умеет показывать нужную информацию пользователю, хоть и за счет ссылок, а также принимать обратную связь. Конечно же, функционал этим не ограничивается и с помощью ботов можно создать нечто большее, но это уже совсем другая история.

Еще по теме:  Как предложить выйти замуж в Телеграмме

А если вы еще не подписаны на наш канал, то советую исправить это недоразумение. 🙂 Делимся только полезными новостями из мира SEO и интернет-маркетинга.

44

0

0

0

1

Спасибо за реакцию, она бесценна! Обязательно подпишитесь на наш Telegram-канал, публикуем много интересных и актуальных материалов. Не пользуетесь Telegram, тогда познакомьтесь с Катей и подпишитесь на нашу рассылку. ×

Источник: 1ps.ru

Интеграция Telegram Bot

Далее бот запросит ввести имэйл, необходимо вводить в точности, как у вас в аккаунте в QuizGo, чтобы телеграмм бот видел вас.

После этого вводим ваш токен.

Все данные для интеграции имейл и токен берем отсюда

После того,как все данные будут введены,установится синхронизация с сервисом QuizGo

Далее переходим в настройки созданного чата и выбираем квизы из которых хотите получать заявки в этот чат

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

Добавление Телеграм бота в группу

Для того,чтобы добавить бота в группу, нужно выбрать группу и нажать «пригласить участника». Далее находите бота, добавляете в группу и настраиваете его через команду /add.

Важно! Чтобы бот работал в группе необходимо в правах доступа разрешить боту читать сообщения, иначе не получится произвести настройку бота, поскольку он не будет реагировать на команду /add.

Если у вас есть предложения по улучшению функционала, пишите нам в чат поддержки. Вместе мы сделаем лучший конструктор квиз-опросов.

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

Реализация аутентификации в telegram-боте через OAuth2 на примере Box API

Author's picture

Возникла идея простого бота, который будет отправлять переданные ему файлы в облако. Однако для аутентификации сейчас практически везде используется OAuth2. Если в web-приложениях пользоваться OAuth2 все уже научились, то с telegram у меня возникли вопросы.

В этой заметке будет минимальный пример telegram-бота, который работает с box.com через API с аутентификацией через OAuth2.

disclaimer #1: В статье не будет подробного описания работы OAuth2 — только необходимый минимум информации для понимания процесса.

disclaimer #2: Для примера использую облачное хранилище box.com, так как именно в нём лежит моя библиотека электронных книг. При реализации аналогичной функциональности для других облаков проблем возникнуть не должно.

Какой сценарий с точки зрения пользователя получим в конце текущей статьи:

  1. Пользователь добавляет бота в telegram
  2. По команде /login пользователь получает ссылку на аутентификацию
  3. Пользователь переходит по ссылке в браузере на box.com
  4. Пользователь аутентифицируется на box.com
  5. Открывается страница бота https://t.me/?start= с предложением отправить ему сообщение по кнопке Send message
  6. Пользователь нажимает на кнопку Send message
  7. В telegram открывается диалог с ботом с активной кнопкой Start
  8. Пользователь нажимает на кнопку Start
  9. Бот отправляет пользователю его login в box.com

Добавить остальную функциональность — дело техники.

Необходимый минимум об OAuth2

Для реализация аутентификации через OAuth2 необходимо выполнить несколько пунктов:

  1. Получить client_id и client_secret в консоли разработчика box.com. Подробно процесс описан в приложении в конце статьи
  2. Сформировать ссылку для аутентификации пользователя https://account.box.com/api/oauth2/authorize?client_id=response_type=code . client_id и redirect_url необходимо скопировать из настроек созданного ранее приложения в консоли box.com
  3. На адресе redirect_url (по-умолчанию в этой статье — это localhost:8000 ) поднять веб-сервер, который сможет получить код для аутентификации в box.com
  4. С полученным в п.3 кодом и параметрами client_id и client_secret из п.1 обратиться к endpoint box.com API для получения access_token и refresh_token . access_token в дальнейшем необходимо добавлять во все запросы к API.

Реализация

Шаг 1. Подготовка

Для работы понадобятся три внешних библиотеки:

  • python-telegram-bot — для работы с Telegram Bot API
  • requests — для выполнения запросов к API
  • boxsdk — для работы с API box.com

Библиотеки и их версии прописаны в requirements.txt. Установить всё через pip install -r requirements.txt — ничего необычного. Но лучше для этого создать отдельное виртуальное окружение.

Еще по теме:  Вац апп в Телеграм

Шаг 2. Продолжаем подготовку

Теперь надо получить токен для бота. Я уже писал об этом ранее.

Шаг 3. Веб-сервис для получения OAuth2-кода

Нужен простой веб-сервис. На URI этого веб-сервиса будет происходить перенаправление со страницы аутентификации box.com. Адрес перенаправления будет содержать параметр code в строке запроса. Этот код используется для получения access_token и refresh_token дальше.

Веб-сервис будет без использования внешних зависимостей. Реализован на встроенном simple http server. Код позаимоствован из gist, но немного модифицирован:

Использовать код выше в настоящем боевом production я бы, конечно, не стал, но для демонстрации идеи подойдёт.

Шаг 4. Минимально работающий бот

Простейший бот с использованием библиотеки python-telegram-bot выглядит так:

from telegram.ext import Updater from telegram.update import Update from telegram.ext.callbackcontext import CallbackContext from telegram.ext import CommandHandler token = ‘TG_BOT_TOKEN’ updater = Updater(token=token, use_context=True) dispatcher = updater.dispatcher def start(update: Update, context: CallbackContext): context.

bot.send_message(chat_id=update.effective_chat.id, text=»I’m a bot, please talk to me!») start_handler = CommandHandler(‘start’, start) dispatcher.add_handler(start_handler) updater.

start_polling()

Этот бот не делает ничего полезного — только отправляет сообщение «I’m a bot, please talk to me!» по команде /start .

Теперь надо добавить самое важное — аутентификацию через OAuth2.

Шаг 4.1. OAuth2-аутентификация

Для аутентификации необходимо перейти по сформированной особым образом ссылке: https://account.box.com/api/oauth2/authorize?client_id=response_type=code , где client_id и redirect_url параметры из настроек созданного ранее приложения в консоли разработчика box.com.

login-page

На этой странице будет стандартная форма логина в box.com .

После ввода логина и пароля произойдёт перенаправление на redirect_url . На этом адресе сервис, получив GET-запрос, вычленит из строки запроса code . После чего перенаправит запрос на страницу старта работы с telegram-ботом. В адрес будет добавлен полученный код. Далее должен открыться диалог с ботом с активной кнопкой Start . По клику на кнопку в обработчике команды /start можно будет получить переданный код.

Простейший код как proof of concept:

from telegram.ext import Updater from telegram.update import Update from telegram.ext.callbackcontext import CallbackContext from telegram.ext import CommandHandler import requests import json import boxsdk client_secret: str = ‘CLIENT_SECRET’ client_id: str = ‘CLIENT_ID’ redirect_url: str = ‘REDIRECT_URL’ token = ‘TG_BOT_TOKEN’ updater = Updater(token=token, use_context=True) dispatcher = updater.dispatcher # Обработчик команды /start def start(update: Update, context: CallbackContext): message_text: str = update.message.text # В deep linking параметры из url передаются в сообщении в виде строки «/start code», # где code — строка из url https://t.me/?start=code. message_parts: list[str] = message_text.split(‘ ‘) if len(message_parts) == 2: # Во втором элементе будет содержаться переданный код, # который необходим для получения access_token и refresh_token code: str = message_parts[1] # Формируем запрос к API box.com для получения access_token и refresh_token access_token_url = ‘https://api.box.com/oauth2/token’ headers = ‘Content-Type’: ‘application/x-www-form-urlencoded’> params = < ‘client_id’: client_id, ‘client_secret’: client_secret, ‘code’: code, ‘grant_type’: ‘authorization_code’ > req = requests.post(access_token_url, data=params, headers=headers) data = json.loads(req.text) # Полученный JSON содержит необходимые данные. # Используя их можно инициализировать клиент boxsdk # и начать обращаться к его API. oauth: boxsdk.OAuth2 = boxsdk.OAuth2( client_id, client_secret, access_token=data[‘access_token’], refresh_token=data[‘refresh_token’]) box_client = boxsdk.Client(oauth) # Например, можно получить информацию об аутентифицированном пользователе. user = box_client.user().get() context.bot.send_message(chat_id=update.effective_chat.id, text=user.login) else: show_welcome_message(update, context) # Обработчик команды /login def login(update: Update, context: CallbackContext): context.bot.send_message(chat_id=update.effective_chat.id, text=f’response_type=code»>Connect to Box.com’, parse_mode=’HTML’) def show_welcome_message(update: Update, context: CallbackContext): context.bot.send_message(chat_id=update.effective_chat.id, text=»I’m a bot, please talk to me!») start_handler = CommandHandler(‘start’, start) login_handler = CommandHandler(‘login’, login) dispatcher.add_handler(start_handler) dispatcher.add_handler(login_handler) updater.start_polling()

Что дальше

  1. Привести код бота в порядок: выделить классы, методы,
  2. Сделать конфигурирование бота более удобным,
  3. Реализовать загрузку файлов в облако.

О чём-то из этого постараюсь написать позже.

Исходники для этой заметки можно найти на github.

Приложение

Получить client_id и client_secret необходимо в консоли разработчика box.com:

  1. Cоздать новое приложение с типом Custom appcreate-app
  2. В настройках приложения выбрать User Authentication (OAuth2) и указывать App Namesetup-app
  3. В разделе Configuration созданного приложения:
  1. в секции OAuth 2.0 Credentials забрать client_id и client_secret ,
  2. в секции OAuth 2.0 Redirect URI указать localhost:8000 (или другой адрес, если есть понимание, что это и зачем)
  3. поставить галочку в чекбоксе Write all files and folders stored in Boxcredentials(в этой статье про это говорить не буду)

Если вам понравилась статья, то можете зайти в мой telegram-канал. В канал попадают небольшие заметки о Python, .NET, Go.

Источник: makesomecode.me

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