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 секунд
Должно получиться примерно так:
https://pp.userapi.com/c849328/v849328905/5a69a/5xcBPp5uuYY.jpg

Скрипт готов!

ШШаг 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
https://pp.userapi.com/c845220/v845220905/d29a1/9JZNwokHqKU.jpg

Нажмите на карандаш, затем на ползунок и «Confirm»

В правом верхнем углу нажмите на вкладку More > View logs

Подождите секунд 10

Если нет ошибок, значит — все работает, поздравляю!)