Слайд 1Занятие №19
Приложение
“Телеграм бот”
Данилова Анна Александровна / регалии кратко
Слайд 2Если видео в плохом качестве:
Уважаемые слушатели!
Видеозапись по умолчанию открывается в
качестве "auto".
Это необходимо, чтобы видео не “зависало”. НО! Автоматический
режим зависит от вашей скорости интернета. Иногда это достаточно низкое качество, неудобное для просмотра.
Вы всегда можете выбрать подходящее качество вручную!
Для этого нажмите на кнопку, как показано на картинке:
Слайд 3Данилова Анна Александровна
danilowaanna@gmail.com
https://vk.com/vasanima
Слайд 4Регистрируем бота в Телеграме.
Устанавливаем Python-библиотеку для работы с Телеграмом.
Добавляем библиотеку
в программу и учим программу реагировать на сообщения в чате.
Пишем
там же код, который покажет кнопки для выбора предметов
Сделаем так, чтобы по кнопкам появилось дз по данному предмету
Напоминание
План занятия
Слайд 5API
API - Aplication Program Interface
У сайтов/сервисов часто есть программный интерфейс
приложения, чтобы сторонние разработки могли взаимодействовать с системой
Слайд 6Telegram
В этом проекте три звена:
наш компьютер с Python,
сервер
Телеграма
и Телеграм-клиент.
На компьютере работает интерпретатор Python, а внутри интерпретатора
крутится наша программа на Python.
Она отвечает за весь контент: в неё заложены все шаблоны текста, вся логика, всё поведение.
Слайд 7Telegram
Внутри программы на Python работает библиотека, которая отвечает за общение
с сервером Телеграма.
В библиотеку мы вшили секретный ключ(токен), чтобы
сервер Телеграма понимал, что наша программа связана с определённым ботом.
Когда клиент с Телеграмом запрашивает у бота расписание, запрос приходит на сервер, а сервер отправляет его на наш компьютер.
Запрос обрабатывается программой на Python, ответ идёт на сервер Телеграма, сервер отдаёт ответ клиенту.
Слайд 9Telegram
Обратите внимание, что работать наш бот будет только тогда, когда
включён компьютер и на нём запущена программа на Python.
Если
компьютер выключится, пропадёт интернет или вы отключите интерпретатор, то бот работать перестанет: запросы будут приходить, но никто на них не ответит.
Но можно сделать так, чтобы это всё работало на удалённом сервере и было всегда доступно.
Слайд 10План работы
Регистрируем бота в Телеграме.
Устанавливаем Python-библиотеку для работы с Телеграмом.
Добавляем
библиотеку в программу и учим программу реагировать на сообщения в
чате.
Слайд 11Регистрируем бота в Телеграме
В Телеграме находим канал @BotFather — он
отвечает за регистрацию новых ботов:
Первый в списке со специальным значком
подтверждения — это он.
Нажимаем Start и пишем команду /newbot. Нас по очереди спросят про название бота и его никнейм
Слайд 12pyTelegramBotApi
Устанавливаем Python-библиотеку для работы с Телеграмом
Слайд 13pyTelegramBotApi
Устанавливаем Python-библиотеку для работы с Телеграмом и импортируем ее
import telebot
bot
= telebot.TeleBot('токен')
Взаимодействие ботов с людьми основано на HTTP-запросах. Библиотека pyTelegramBotAPI,
которая берет на себя все нюансы отправки и получения запросов, позволяя сконцентрироваться непосредственно на логике.
Слайд 14Пример простого бота
Повторение. Разбор
Telegram справочник
Слайд 15Пример простого бота
И последнее, что нам осталось сделать до запуска,
— добавить после метода такую строчку:
bot.polling(none_stop=True, interval=0)
Она скажет программе, чтобы
она непрерывно спрашивала у бота, не пришли ли ему какие-то новые сообщения.
Параметр none_stop=True говорит, что бот должен стараться не прекращать работу при возникновении каких-либо ошибок.
Слайд 16Что такое декоратор?
Напишем обработчик, который будет реагировать на все текстовые
сообщения.
@bot.message_handler(content_types=["text"])
Обратите внимание: декораторы будут проверяться в порядке их следования
в коде
Что это?
Декоратор — это функция, которая позволяет обернуть другую функцию для расширения её функциональности без непосредственного изменения её кода.
Чтобы понять, как это работает, сначала разберёмся в работе функций в Python.
Слайд 17Как работают функции?
Функции как процедуры
С этим аспектом функций мы знакомы
лучше всего.
Процедура — это именованная последовательность вычислительных шагов.
Любую
процедуру можно вызвать в любом месте программы, в том числе внутри другой процедуры или даже самой себя.
Слайд 18Как работают функции?
Функции как объекты первого класса
В Python всё является
объектом, а не только объекты, которые вы создаёте из классов.
В этом смысле он (Python) полностью соответствует идеям объектно-ориентированного программирования. Это значит, что в Python всё это — объекты:
числа;
строки;
классы (да, даже классы!);
функции (то, что нас интересует).
Слайд 19Объекты первого класса?
Тк всё является объектами, открывает перед нами множество
возможностей. Мы можем сохранять функции в переменные, передавать их в
качестве аргументов и возвращать из других функций. Можно даже определить одну функцию внутри другой. Иными словами, функции — это объекты первого класса.
Объектами первого класса в контексте конкретного языка программирования называются элементы, которые можно: передавать как параметр, возвращать из функции и присваивать переменной.
Слайд 20Функции высших порядков
Функциональное программирование — функции высших порядков
функции являются объектами
первого класса;
следовательно, язык поддерживает функции высших порядков.
Функции высших порядков —
это такие функции, которые могут принимать в качестве аргументов и возвращать другие функции.
Слайд 21Функции высших порядков
Определять функции внутри других функций:
>>> def wrapper_function():
...
def hello_world():
. .. print('Hello world!')
... hello_world() ...
>>> wrapper_function()
Hello world!
>>> def hello_world():
... print('Hello world!')
Мы можем хранить функции в переменных:
>>> hello = hello_world
>>> hello()
Hello world!
Слайд 22Функции высших порядков
Передавать функции в качестве аргументов и возвращать их
из других функций:
>>> def higher_order(func):
... print('Получена функция {} в
качестве аргумента'.format(func))
... func()
... return func …
>>> higher_order(hello_world)
Из этих примеров должно стать понятно, насколько функции в Python гибкие.
Слайд 23Функции высших порядков
Декоратор — это функция, которая позволяет обернуть другую
функцию для расширения её функциональности без непосредственного изменения её кода.
def
decorator_function(func): функция-декоратор. является функцией высшего порядка, так как принимает функцию в качестве аргумента, а также возвращает функцию.
def wrapper(): обёртка, “обёртывает” функцию-аргумент и затем изменяет её поведение
print('Функция-обёртка!')
print('Оборачиваемая функция: {}'.format(func))
print('Выполняем обёрнутую функцию...')
func()
print('Выходим из обёртки')
return wrapper
>>> @decorator_function ...
def hello_world():
... print('Hello world!') ...
>>> hello_world()
Функция-обертка!
Оборачиваемая функция:
Выполняем обёрнутую функцию...
Hello world!
Выходим из обёртки
Слайд 24Проект - Бот для школьника
Домашнее задание на сегодня
Расписание и домашнее
задание на любой день недели
Экзамены - когда они?
Добавить напоминание
Справка
Слайд 25Ваши вопросы по проекту
Идеи, как можно усовершенствовать
Слайд 26Спасибо за внимание!
Данилова Анна Александровна
danilowaanna@gmail.com
https://vk.com/vasanima