Баланс в Телеграм боте

Одним днём мы, редакция pythonist.ru, от нечего делать, стали кидать друг другу задачки и смотреть, кто быстрее решит. В какой-то момент нам пришла в голову идея автоматизировать этот процесс. Нам понадобился бот, который отправлял бы нам случайные задачки, а мы бы уже их наперегонки решали.

Итак, что мы имеем:

  • Наша редакция предпочитает общение в telegram
  • Мы все пишем на Python

Следовательно, нам нужно написать на python что-то, что будет отправлять нам задачки прямо в чат. Источником задач мы, конечно же, взяли наш цикл статей по проекту Эйлера. Он ещё только в процессе заполнения, но его вполне можно использовать для наших задач.

Теперь, нужно разобраться с библиотеками, которыми мы будем пользоваться при написании бота. Ими станут:

  • pytelegrambotapi — основная библиотека для написания самого бота
  • beautifulsoup4 — для парсинга сайта и обработки ссылок на задачи

Итак, приступим, для начала необходимо в новом проекте установить необходимые библиотеки:

Telegram bot с приёмом платежей


pip install pytelegrambotapi pip install beautifulsoup4

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

В последнем сообщении от BotFather, мы получили токен нашего бота, им нельзя делиться, так как это ключ к боту, позволяющий делать с ним всё что угодно.

Для начала нам нужно подключить бота к нашему python-коду, напишем следующее:

import telebot TOKEN = ‘СЮДА ПИШЕМ ТОКЕН’ bot = telebot.TeleBot(TOKEN)

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

Для того, чтобы убедиться, что всё в порядке, напишем небольшую функцию, для обработки команды ‘/start’. Telebot предоставляет удобные инструменты для обработки сообщений, собственно поэтому мы его и используем.

Итак, напишем декоратор, а потом разберемся, что к чему.

Честно, даже с первого раза получилось. А теперь давайте разбираться что и как работает.

Первой строкой мы обратились к декоратору message_handler, он обрабатывает все входящие сообщения, если не передать ему никаких параметров. Мы же передали ему commands=[‘start’]. Это значит, что он будет реагировать только на сообщения-команды (начинающиеся со слэша), а в нашем случае, только на команду /start. Другие сообщения его не интересуют.

Затем мы прописываем функцию, которую декорируем, и говорим нашему боту, чтоб отвечал на сообщение ‘/start’ неким сообщением.

Последние две строчки нужны для того, чтобы бот работал постоянно, пока запущен. Просто оборачиваем bot.polling() в бесконечный цикл.

Бот работает, надо разобраться с тем, как мы будем получать задачи.

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

Еще по теме:  Как поменять тему в Телеграмме на Андроиде на свою

Но перед тем, как отдать сайт на съедение beautifulsoup, мы должны получить его html-код, делается это очень просто, импортируем встроенную библиотеку urllib, и отдаем ей url нашего сайта.

import urllib site = urllib.request.urlopen(‘https://pythonist.ru/spisok-zadach-proekt-ejlera-s-resheniyami/‘).read()

Передадим библиотеке beautifulsoup наш html-код, записанный в переменную site и, обработав улучшалкой beautifulsoup.prettify(), выведем полученный результат, чтобы убедиться, что все идет по плану.

soup = bs4.BeautifulSoup(site) print(soup.prettify())

На выводе мы получим огромное полотно кода, среди которого нас интересует только вот этот кусок:

Задача 1 «Числа, кратные 3 или 5»

Задача 2 «Четные числа Фибоначчи»

Задача 20 «Сумма цифр факториала»

Задача 21 «Дружественные числа»

Задача 23 «Неизбыточные суммы»

Задача 24 «Словарные перестановки:

Именно тут хранятся нужные нам ссылки на задачи, а мы находимся всё ближе к своей цели. Теперь нам нужно достать эти ссылки, чтобы у нас была возможность отправлять их. Для этого немного переписываем предыдущий код, не переживайте, без объяснений не останетесь:)

site = urllib.request.urlopen(‘https://pythonist.ru/spisok-zadach-proekta-ejlera-s-resheniyami/’).read() soup = bs4.BeautifulSoup(site) raw_excersises = soup.find(‘div’, ) #забираем интересующий нас кусок кода excersises = raw_excersises.find_all(‘a’) links_to_excersises = [] for i in range(len(excersises)): links_to_excersises.append(excersises[i].get(‘href’)) print(‘I have a list’)

Что происходит в этом коде:

  • забираем html код сайта
  • скармливаем этот код bs4
  • находим нужный нам фрагмент кода, в котором хранятся ссылки
  • забираем непосредственно блоки с ссылками
  • в цикле for собираем список, состоящий только из ссылок
  • убеждаемся, что код выполнился

У этого кода есть один недостаток — при добавлении новой задачи на сайт, придется перезапускать бота, чтобы он заново спарсил список. Но так он работает намного быстрее, так как парсинг — дело долгое.

Ну все, осталось самое простое — по запросу выбрасывать ссылку на случайную задачу в чат. Для этого напишем декоратор-обработчик команды, назовем ее /task.

Тут особо сложного ничего нет, пройдемся по порядку:

  • импортируем модуль random, он нужен для выбора случайной статьи
  • задаем обработчику параметр, обеспечивающий работу только при сообщении /task
  • выбираем ссылку, которую будем отправлять
  • отправляем эту ссылку

Создаем бота в «Телеграм» для автопродаж – без опыта! Своими руками!

Создаем бота в «Телеграм» для автопродаж – без опыта! Своими руками!

Создаем бота в «Телеграм» для автопродаж – без опыта! Своими руками!

Мария Кулак Редакция «Текстерры»

Во время глобального инстапереселения присмотреться к Telegram стоит не только блогерам, но и интернет-магазинам. В мессенджере можно анонсировать скидки и продавать товары даже… автоматически. Но для этого нужен бот! Рассказываем, как его создать.

Запустим контекстную рекламу в Яндексе

Почему в Telegram выгодно продавать

  1. Скорость загрузки. Тяжелый сайт интернет-магазина грузится медленно, зачастую из-за плохой верстки «плывет» на мобильном устройстве.
  2. Прогрессивность. Продавать через «Телеграм» удобно, и пока еще мало кто так делает.

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

Единственный минус продаж в «Телеграме» – ограниченное число способов оплаты. Однако «Сбербанк» уже ведет переговоры о сотрудничестве с Telegram. «Тинькофф», «Открытие» и «Райффайзенбанк» также объявили о желании стать платежными операторами «Телеграм» в рамках Telegram Payments.

Еще совершать платежи можно с помощью сервиса «ЮKassа», в котором нужно ввести данные банковской карты. Для ускорения покупок покупатель может настроить двухфакторную верификацию. «Телеграм» запомнит данные и сможет оплачивать покупки в мессенджере еще быстрее – со временем пользователи перейдут на такой формат платежей.

Еще по теме:  Дедик для ТГ скачать

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

Поскольку магазины в «Телеграме» еще не популярны, для их самостоятельного создания есть всего один сервис – Botobot. У него есть платные тарифы, но есть и бесплатный – подойдет тем, чей каталог состоит из 20 или меньшего числа позиций. До 200 товаров можно разместить за 350 рублей в месяц – бюджетно.

Создаем бота в «Телеграм» для автопродаж – без опыта! Своими руками!

Продвинем ваш бизнес

В Google и «Яндексе», соцсетях, рассылках, на видеоплатформах, у блогеров

Как создать бота-продавца в «Телеграм»

Создание нового бота происходит в BotFather.

Зайдите в чат с «ботопапой» и выберите команду « / newbot». Далее следуйте инструкциям: назовите бота и присвойте ему системное имя на латинице с окончанием «bot». Получите токен.

Токен – комбинация букв и цифр для авторизации и дальнейшей идентификации пользователя в программном продукте.

Список основных команд в BotFather

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

Если бот создан корректно, бот отправит такое сообщение:

Бот готов

Каждый бот получает уникальный токер для доступа к HTTP API

Как работать с Botobot

Сервис помогает создать магазин в «Телеграме» и не привязывать его к сайту интернет-магазина. Все оформленные заказы будут поступать в личный кабинет на сайте разработчиков.

Чтобы начать работу с сервисом, зайдите в бот и выберите его язык. Вариантов не очень много, но русский среди них есть:

Команды в Botobot

Выберите пункт Создать магазин

Затем нажмите «Создать магазин» и укажите его имя.

Даем магазину название

Обязательно изучите пользовательское соглашение, которое станет доступным после нажатия кнопки «Создать магазин»

Далее укажите токен из BotFather:

Впишите токен, который ранее вам дал BotFather

Указываем ранее полученный токен

Ура, магазин создан:

Найти личный кабинет магазина вы можете по ссылке, которую даст бот в Telegram

Теперь можно зайти в личный кабинет на сайте botobot.ru и увидеть данные бота

После этого на сайте бота повится личный кабинет – оттуда вы будете управлять карточками товара.

Скрин из личного кабинета

Вот готовый шаблон, в который вы можете добавить свои товары. Подробнее о загрузке прайс-листа из XLSX написано в справке сервиса.

В случае успешного импорта статус изменится на Done.

Правильное форматирование прайс-листа

Как сделать заказ через бот

Зайдя в бот-магазин, нажмите «Начать».

Создаем бота в «Телеграм» для автопродаж – без опыта! Своими руками!

Откроется меню, в котором появится каталог.

Кнопки заказа товара в боте

Вы можете сделать свои команды заказа товара

Доступные категории товаров Доступные категории товаров Доступные категории товаров

Смотреть галерею

Пользователь сам выбирает, какие разделы каталога хочет увидеть

После выбора нужной категории выпадет полный список товаров. Для заказа нужно нажать на кнопку «Купить».

Добавляем товар в корзину

Пользователь может выбрать вариант товара и добавить его в корзину

Корзина в «Телеграм»

Все товары попадают в корзину, откуда можно оформить заказ

Заказ оформляется в несколько шагов. Нужно указать время, вариант доставки, адрес и телефон.

Уточняем детали доставки Уточняем детали доставки Уточняем детали доставки Уточняем детали доставки

Смотреть галерею

Бот самостоятельно ведет клиента

Еще по теме:  Как создать сообщение с комментариями в Телеграмме

Подтверждение заказа

Когда заказ в Telegram-боте успешно подтвержден, данные отправляются в ваш магазин

Оплату через сервис можно настроить в административной панели во вкладке «Платежи». По умолчанию оплаты проходят через Telegram Payments прямо в мессенджере. Это безопасно, быстро и удобно: Telegram не берет комиссии и не хранит платежную информацию.

Оформленные заказы находятся в админ-панели на сайте Botobot

Следить за всеми заказами, поступившими через бота, можно в админке на сайте Botobot.

8 мифов об автоворонках и чат-ботах в мессенджерах

8 мифов об автоворонках и чат-ботах в мессенджерах

Выводы

Создать чат-бот интернет-магазина в «Телеграме» легко: не нужно кодить, мониторить горы форумов, нанимать разработчиков. Будьте на шаг впереди конкурентов, внедряйте прогрессивные маркетинговые ходы сегодня и увеличивайте продажи.

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

Не нужно спамить в чат-ботах магазинов!

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

Радуйте покупателей промокодами и стоящими скидками.

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

Создание Чат-Бот-Магазин в Телеграм с нуля. Часть четвертая

Добавим к просмотру оформленного заказа кнопку «Оплатить через Яндекс.Деньги». Настроим HTTP-уведомления для автоматического изменения статуса заказа, и уведомления администратора об оплате заказа.

Продолжение статей : (Часть 1, Часть 2, Часть 3) После оформления заказа добавим возможность оплатить заказ через Яндекс.Деньги на пользовательский кошелек. Для этого заменим кнопку, которая была в предыдущих статьях на экране просмотра заказа. Установим кнопку с ссылкой на страницу Яндекс.Денег с предзаполненной формой оплаты. Форма заполняется переданными в ссылке данными, саму ссылку генерирует метод getUrl

receiver . «targets=» . urlencode($this->nameShop) . «sum=» . $sum . » . $user_id . «:» . $order_id . «:» . md5(rand(0, 1000)) . » . urlencode(«Оплата заказа #» . $order_id) . » . $this->urlBot; > ?>

Кнопку заменим в методе drawOrder
getUrl($total, $user_id, $orderRaw[‘id’]); $buttons[][] = $this->buildInlineKeyBoardButton(‘Оплатить через Яндекс.Деньги’, », $url); > else < // если заказ оплачен то уведомляем $text .= «nЗаказ оплаченn»; > // . >

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

HTTP уведомления

Теперь нам необходимо в настройках Яндекс.Денег настроить прием уведомлений на специальный адрес обработчика, который будет уведомлять пользователя и администратора о совершенном платеже, и в случае успешного выполнения задуманного сценария — менять статус заказа. Для этого на странице https://money.yandex.ru/myservices/online.xml необходимо указать путь до файла ya_success.php — перед сохранением изменений убедитесь, что чекбокс установлен у «Отправлять уведомления». Вы можете дополнительно сделать проверку уведомлений использовав секретное слово.

Файл — ya_success.php

Исходные файлы бота

Это была последняя часть по строительству Чат-Бот-Магазина в Телеграм. Стиль программирования со временем конечно у меня меняется (прошло, наверное, больше полгода с начала первой статьи) и уже если честно, то прикручивать оплату в этот проект бота было уже не привычно, даже я скажу: «Как вообще я мог так пис`ать?», но чтобы не ломать логику настроенную в самом начале — пришлось подстраиваться. По итогу «скелет» бот-магазина готов. По вашим потребностям вы можете прикручивать любой функционал, менять и использовать этого бота без каких-либо ограничений. Огромная просьба не использовать бот в целях, которые нарушают законы.

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

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