Программирование под API web-сервисов

Содержание

Слайд 2

Создан в 2013 году Представлен на практически всех современных мобильных платформах;

Создан в 2013 году
Представлен на практически всех современных мобильных платформах;
Имеет версию

для ПК (Telegram Desktop). Поддерживает Windows / GNU Linux / macOS;
Одна из самых крупных платформ для ботов

Telegram

Слайд 3

Telegram

Telegram

Слайд 4

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

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

телефон приходит SMS с кодом авторизации

Telegram

Слайд 5

Регистрация бота Для регистрации нужно найти в поиске контакт “BotFather” Или перейти по URL: https://telegram.me/botfather

Регистрация бота

Для регистрации нужно найти в поиске контакт “BotFather”
Или перейти по

URL: https://telegram.me/botfather
Слайд 6

Регистрация бота

Регистрация бота

Слайд 7

Регистрация бота /newbot – команда регистрации Входные данные Имя бота (любое)

Регистрация бота

/newbot – команда регистрации
Входные данные
Имя бота (любое)
Логин бота (уникальное,

заканчивается на bot.
Выходные данные
Токен для авторизации бота
После регистрации бота можно будет найти по ссылке: https://telegram.me/ или в поиске по имени
Слайд 8

Токен Пример токена: 1621840900:AAFzEyGvpfolq-rv03BDcCASyB-iVjvRapM Внимание: хранить в секрете, никому не давать!

Токен

Пример токена:
1621840900:AAFzEyGvpfolq-rv03BDcCASyB-iVjvRapM
Внимание: хранить в секрете, никому не давать!
Если токен скомпрометирован, пишем

боту @botfather
команда /revoke – отзыв старого токена
команда /token – создание нового токена
Слайд 9

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

После регистрации

/setabouttext добавляет боту текстовое описание, которое пользователь может посмотреть в

профиле бота (до 200 символов);
/setdescription добавляет боту краткое описание (что он делает), которое отображается при добавлении бота в контакт-лист в начале работы (до 512 символов);
/setuserpic устанавливает в качестве аватарки бота картинку, которую вы ему вышлете.
Слайд 10

Telegram bot API Документация тут: https://core.telegram.org/bots/api Пример запроса: https://api.telegram.org/bot /getMe Возвращает JSON с данными

Telegram bot API

Документация тут: https://core.telegram.org/bots/api
Пример запроса:
https://api.telegram.org/bot<здесь_токен_бота>/getMe
Возвращает JSON с данными

Слайд 11

Telegram bot API Ещё пример: https://api.telegram.org/bot /getUpdates Возвращает JSON с сообщениями

Telegram bot API

Ещё пример:
https://api.telegram.org/bot<здесь_токен_бота>/getUpdates
Возвращает JSON с сообщениями

Слайд 12

Telegram bot API Ещё пример: https://api.telegram.org/bot /getUpdates Возвращает JSON с сообщениями Надоело общаться низкоуровневыми запросами?

Telegram bot API

Ещё пример:
https://api.telegram.org/bot<здесь_токен_бота>/getUpdates
Возвращает JSON с сообщениями

Надоело общаться низкоуровневыми запросами?

Слайд 13

Telegram bot API Ещё пример: https://api.telegram.org/bot /getUpdates Возвращает JSON с сообщениями

Telegram bot API

Ещё пример:
https://api.telegram.org/bot<здесь_токен_бота>/getUpdates
Возвращает JSON с сообщениями

Надоело общаться низкоуровневыми запросами?

Мне тоже.
Слайд 14

Библиотека pyTelegramBotAPI Высокоуровневая объектно-ориентированная реализация Telegram Bot API на языке Python.

Библиотека pyTelegramBotAPI

Высокоуровневая объектно-ориентированная реализация Telegram Bot API на языке Python.
Документация и

исходники: https://github.com/eternnoir/pyTelegramBotAPI
Установка:

pip install pytelegrambotapi

Слайд 15

Библиотека pyTelegramBotAPI Инициализация from telebot import TeleBot bot = TeleBot("сюда пишется токен")

Библиотека pyTelegramBotAPI

Инициализация

from telebot import TeleBot bot = TeleBot("сюда пишется токен")

Слайд 16

Библиотека pyTelegramBotAPI Во избежание спама боты в Telegram не имеют права

Библиотека pyTelegramBotAPI

Во избежание спама боты в Telegram не имеют права отправлять

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

Библиотека pyTelegramBotAPI На каждый тип сообщения или команды создаётся отдельная функция-обработчик.

Библиотека pyTelegramBotAPI

На каждый тип сообщения или команды создаётся отдельная функция-обработчик.
Пример:

@bot.message_handler(content_types=["text"]) def recieve_message(msg):

bot.send_message(msg.chat.id, msg.text)
Слайд 18

Библиотека pyTelegramBotAPI На каждый тип сообщения или команды создаётся отдельная функция-обработчик.

Библиотека pyTelegramBotAPI

На каждый тип сообщения или команды создаётся отдельная функция-обработчик.
Пример:

@bot.message_handler(content_types=["text"]) def recieve_message(msg):

bot.send_message(msg.chat.id, msg.text)

Обрабатывает только
текстовые сообщения

Указание получателя
сообщения

Текст сообщения
(по сути, эхо-бот)

Слайд 19

Библиотека pyTelegramBotAPI Запуск бота: Бот войдёт в режим ожидания сообщений if __name__ == '__main__': bot.polling(none_stop=True)

Библиотека pyTelegramBotAPI

Запуск бота:
Бот войдёт в режим ожидания сообщений

if __name__ == '__main__':

bot.polling(none_stop=True)
Слайд 20

Библиотека pyTelegramBotAPI Полный код from telebot import TeleBot bot = TeleBot("Здесь

Библиотека pyTelegramBotAPI

Полный код

from telebot import TeleBot
bot = TeleBot("Здесь токен бота")
@bot.message_handler(content_types=["text"]) def recieve_message(msg):

bot.send_message(msg.chat.id, msg.text)
if __name__ == '__main__': bot.polling(none_stop=True)
Слайд 21

Библиотека pyTelegramBotAPI Задача: вести статистику по количеству сообщений, присланных боту с

Библиотека pyTelegramBotAPI

Задача: вести статистику по количеству сообщений, присланных боту с момента

его включения Решение: словарь.

users = {}
@bot.message_handler(content_types=["text"]) def recieve_message(msg): global users if not (msg.chat.id in users): users[msg.chat.id] = 0 bot.send_message(msg.chat.id, "Да вы у нас впервые!") bot.send_message(msg.chat.id, "Добро пожаловать!") users[msg.chat.id] += 1 bot.send_message(msg.chat.id, f"Вы написали {users[msg.chat.id]} сообщений")