Python и автостатус ВК
В этой статье я постараюсь детально описать как сделать автостатус на вашей странице, работающий 24/7 абсолютно бесплатно
Шаг 1-й — установка Python и библиотеки vk_api
Как видно в названии, в качестве ЯПа я выбрал Python. Причем версия должна быть не ниже 3-й. Для скачивания перейдите на официальный сайт языка — https://www.python.org/downloads/
При установке Python обязательно ставьте галочку «Add Python to PATH»
Если питон установлен, устанавливаем библиотеку vk_api (она понадобится нам, чтобы скрипт взаимодействовал с VK)
Для установки откройте командную строку / терминал и введите:
pip install vk_api
Идем дальше
Шаг 2-й — Git и Heroku
Переходим на сайт https://www.heroku.com/ и регистрируемся (Heroku будет хостингом для нашего скрипта)
После регистрации нужно установить Heroku CLI — https://vk.cc/8pxSQR
Чтобы залить наш скрипт на Heroku нам понадобится Git — https://vk.cc/5nGb7o
Шаг 3-й — пишем скрипт
Давайте импортируем необходимые модули:
import vk_api
import datetime # работа с датой и временем
import time
Создадим бесконечный цикл:
while True:
Авторизуемся:
vk = vk_api.VkApi(token=«токен для авторизации»)
Как получить токен можно узнать отсюда — https://vk.cc/8pyseT
Давайте сделаем так, чтобы в статусе отображались время (МСК) и дата:
delta = datetime.timedelta(hours=3, minutes=0) # разница от UTC. Можете вписать любое значение вместо 3
t = (datetime.datetime.now(datetime.timezone.utc) + delta) # Присваиваем дату и время переменной «t»
nowtime = t.strftime("%H:%M") # текущее время
nowdate = t.strftime("%d.%m.%Y") # текущая дата
Давайте еще сделаем так, чтобы в статусе отображалось число ваших друзей онлайн:
on = vk.method("friends.getOnline") # получаем список id друзей онлайн
counted = len(on) # считаем кол-во элементов в списке
Делаем сам статус:
vk.method("status.set", {"text": nowtime + " ● " + nowdate + " ● " + "Друзей онлайн: " + str(counted)})
В значении text указано содержимое статуса. Необязательно делать так, как в моем примере
И наконец во избежание капчи от ВК:
time.sleep(30) # погружаем скрипт в «сон» на 30 секунд
Должно получиться примерно так:
Скрипт готов!
ШШаг 4-й — заливаем скрипт на Heroku
Снова открываем cmd или терминал и авторизуемся на Heroku:
heroku login
Переместитесь в директорию с расположением скрипта (желательно создать для него отдельную папку):
cd %директория%
Создайте приложение в Heroku (вместо app_name впишите любое уникальное название):
heroku create %app_name% --buildpack http://github.com/heroku/heroku-buildpack-python.git
Чтобы Heroku принял наш скрипт нам нужно создать три следующих файла:
runtime.txt
Procfile // без расширения
requirements.txt
Заполните эти файлы:
runtime.txt:
python-3.6.6
Procfile:
worker: python3 %name%.py
Вместо name впишите имя вашего скрипта
requirements.txt:
# api для вк
vk_api
Загрузите скрипт:
git init
heroku git:remote -a %app_name%
git add .
git commit -am «first deploy»
Вместо first_deploy впишите что хотите. Вместо app_name впишите указанное вами в начале название приложения
И наконец:
git push heroku master
После этой команды начнется загрузка скрипта. Дождитесь окончания
После завершения зайдите на сайт Heroku
Войдите в свое приложение
Перейдите на вкладку Resources
Нажмите на карандаш, затем на ползунок и «Confirm»
В правом верхнем углу нажмите на вкладку More > View logs
Подождите секунд 10
Если нет ошибок, значит — все работает, поздравляю!)