Найти тему
Nikita Vandishev

Telegram Bot + WebHooks + API_VK на Python!

Предисловие

Данная статья ни в коем случае не показывает какой я гуру-шмуру.
Здесь представлены знания и методы , которые были мной опробованы для реализации и закрепления знаний.Теперь мне хочется поделиться этим с Вами,авось кому пригодиться.
Как говорится: «С миру по нитке — голому рубаха».

Сообщество вконтакте:
vk.com/qa_ninjas

Подписывайтесь на телеграм канал:
teleg.run/QA_NINJAS

Подпункт 0:
Для того чтобы реализовать бота,Вам необходимо заранее ознакомится с тем:
— Что такое телеграм боты?
— Зачем они нужны?
— Кто такой BotFather?
— Как получить API токен бота

Это можно вкратце узнать в этой статье: https://tlgrm.ru/docs/bots
P.S. Не забудьте добавить бота как администратором в паблик телеграма

Так же данный бот использует API VK , а именно CallBackAPI,поэтому Вам тоже необходимо прочитать что это,зачем и как пользоваться.
Бот представлен через сервисный ключ (не нужна авторизация через пользователя или сообщество)

Перед выполнением каких-либо действий , необходимо скачать репозиторий с ботом (по факту там фигурирует один скрипт — main.py)
Ссылка на репозиторий —
https://github.com/nekitvand/telegram_vk_bot

Когда Вы его скачаете — не забудьте заменить переменные на Ваши значения,токены и ключи! (Постарался вынести их отдельно для удобства)

Telegram Bot + WebHooks + API_VK

Необходимо зарегистрироваться в на https://www.pythonanywhere.com , выбрав доступ-план Beginner

Переходим на вкладку Console.Находим и нажимаем на «Bash»

-2

Происходит инициализация консоли.Сейчас нам нужно создать виртуальное хранилище,чтобы в нем расположить Вашего бота.Для этого нужно ввести в консоль следующие команды:
1. virtualenv venv --python=python3.6
2.source venv/bin/activate
3. pip install flask
4. pip install requests
5. pip install Flask-SSLify

После выполнения команд переходим на вкладку Files.В левой колонке сайта , должна появится папка venv.Чуть выше должна быть строка ввода и кнопка «New Directory».Создаем новую папку и называет bot (можно любое название , с этим просто проще работать дальше)

-3

Нажимаем на кнопку «Upload Files» и выбираем файл main.py

Теперь необходимо завести новый проект\приложение.Это делается во вкладке Web , нажатием на кнопку «Add a new app..»

-4

После регистрации необходимо завести новый проект\приложение.Это делается во вкладке Web , нажатием на кнопку «Add a new app..»

-5

Во время установки будет необходимо выбрать Manual conf. и ОБЯЗАТЕЛЬНО выбрать версию Python от 3.6 и выше

-6

После удачной установки на странице Web должно появится Ваше новое приложение.
p.s. Зеленная кнопка перезагружает наш проект.Его нужно перезагружать каждый раз, после каких либо изменений в настройках либо коде.

-7

На этой же странице , в блоке Code и Virtualenv , нужно указать все параметры ,чтобы приложение заработало (вместо nekitvand поставляем название своего приложения)

-8

Далее нажимаем на ссылку WSGI configuration file (wsgi.py).Система отправляет нас внутрь этого документа.Здесь необходимо найти раздел Flask и раcкомментировать строчки и подправить как на скриншотах ниже (опять же указывая названия СВОЕГО приложения)

-9

Сохраняем документ.Перезагружаем проект (на зеленную кнопку , страница Web)

Теперь нужно поставить веб-хук на бота.Для этого используется ссылку (только не забудь поставить id своего бота).
Ее необходимо просто вставить в строку браузера и перейти по ней

https://api.telegram.org/bot{id_бота}/setWebhook?url=https://{ВАШ_САЙТ}.pythonanywhere.com/{id_бота}

Если все сделано правильно — напишите Вашему боту слово «post».
В канал вашего сообщества должно прийти сообщение (последний пост с указанной группы в ВК)

Надеюсь что это руководство хоть как-то помогло Вам! Так же прошу всех почитавших отписаться мне в ЛС,если есть чем и как дополнить или улучшить статью! =))

p.s. я безграмотный холоп — не серчайте