В этот раз у нас напряжённый график: надо поработать с АПИ Вконтакте, стащить оттуда нужные данные и сделать боте в Телеграме, который эти данные будет выдавать.
Бот новостной: ты ему говоришь /python_news
, а он тебе выдаёт случайную сегодняшнюю публикацию про Питон в одной
из тематических групп.
В задаче две части: сбор данных и телеграм-бот.
Задание ещё меньше формализовано, чем предыдущее, всё как в жизни.
- Освоиться с АПИ Вконтакте ============================
Надо разобраться с тем, как ползоваться АПИ Вконтакте. Если нужна авторизация – разобраться с ней. Для запросов к АПИ Вконтакте из Питона лучше использовать знакомый уже requests.
Если можешь из Питона вытащить информацию о своём профиле – дело сделано.
Вот доки: https://vk.com/dev/
- Найти группы, которые будем мониторить =========================================
Теперь надо найти тематические группы Вконтакте. Это группы, в которых есть хотя бы по одному посту в день и которые про Питон. Надо собрать как минимум десяток подходящих групп.
Было бы классно отфильтровать всякие группы с платным решением заданий или группы, которые "просто" про программирование – едва ли в них проскакивают интересные нам новости.
На выходе – json-файлик с айдишниками нужных групп.
- Написать парсер постов из нужных групп =========================================
Следующий скрипт идёт по группам из файлика предыдущего задания и вытаскивает все посты, которые были опубликованы в день запуска скрипта.
На выходе – файлик с нужной информацией о постах.
При этом если запустить скрипт дважды, новые посты должны добавиться в файл, а старые – не дублироваться.
Сами посты должны быть про Питон. Идеально было бы фильтровать только новостные посты.
- Освоиться с АПИ Телеграма ============================
Пришло время АПИ Телеграма. Надо сделать две вещи: зарегистрировать бота и запустить эхобота.
Зарегистрировать бота – значит, создать своего бота в Телеграме и получить его ключ доступа.
Запустить эхобота – значит, запустить тестового бота, который отвечает тем же, что ты ему написал. Прям реально запустить, чтобы можно было ему написать в Телеграме и увидеть ответ.
Понятное дело, что бот будет на Питоне. Для удобного доступа к АПИ Телеграма будем использовать библиотеку python-telegram-bot. Эхобот – один из примеров в репозитории, достаточно скопировать файл с исходниками нужного бота.
Не продолжай делать задания, пока твой собственный бот не ответил тебе в Телеграме.
Что будет, если спросить бота, когда скрипт не запущен? Запущен? Что там в коде? А что, если расставить кучу принтов и узнать, в каких переменных что живёт? Ты ж собрал голема из грязи и палок. Классно было бы поглядеть, что у него внутри и как это работает.
- Научить бота выдавать новости ================================
Осталось соеденить бота в Телеграме и скрипт выдачи новостей про Питон.
Возмём бота из предыдущего задания, удалим из него бесполезную функцию эхо-ответа и добавим нужную функцию получения случайной сегодняшней новости из файла, созданного в задании 2.
Бот должен уметь понимать комманду /python_news
и выдавать на неё случайную сегодняшнюю новость.
В новости должен быть анонс (первые пара предложений, например) и ссылка на полную новость Вконтакте.