it Новости Изменение статуса при помощи Python и API Вконтакте
Изменение статуса при помощи Python и API Вконтакте

Изменение статуса при помощи Python и API Вконтакте

1 695
12 июля 2019 в 15:24
Python мощный и полнофункциональный язык. В ходе статьи мы познакомимся с API Вконтакте и пропишем скрипт, который позволит выполнять обновление статуса Вк в режиме 24/7.

Чтобы быстро создать автостатус с возможностью круглосуточной работы, от пользователя потребуется совершить ряд несложных манипуляций.

#1 - Установка ПО Python и vk_api

Сначала необходимо скачать Python не ниже третьей версии. Он нужен в качестве языка программирования. Чтобы установить ЯП на ПК, потребуется загрузить установочный файл, пройдя по этой ссылке.


В процессе инсталляции поставить отметку напротив пункта «Add Python to PATH»:



При установленном ЯП все равно потребуются библиотеки vk_api, чтобы обеспечить работу скрипта в социальной сети. Добавить из проект можно через командную строку или терминал. Запускаем командную строку через команду cmd (пропишите её в меню пуск), далее в командной строке пропишите:

pip install vk_api

#2 – Создание Git и Heroku

Нужно зарегистрироваться на ресурсе Heroku по этой ссылке, чтобы создать хостинг для скрипта. Когда аккаунт будет активным, необходимо инсталлировать на ПК Heroku CLI.


Также понадобиться Git, который можно скачать отсюда. Он потребуется, чтобы установить скрипт на Heroku.

#3 – Создание скрипта

Теперь потребуется вставить функциональные модули:

import vk_api

import datetime # работа с датой и временем

import time


Прописать повторяющийся цикл:

while True:


Дальше необходима авторизация в соц. сети:

vk = vk_api.VkApi(token="токен для авторизации")


Пройдя по этой ссылке откроется инструкция для получения токена:


Теперь потребуется настроить дату и московское время:

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

Чтобы пройти авторизацию на 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:

vk_api


Теперь он готов к инсталляции:

git init
heroku git:remote -a %app_name%
git add .
git commit -am "first deploy"


Дальше потребуется заменить значение app_name на название приложения, а first_deploy переименовать на произвольные символы.


Последняя команда:

git push heroku master


Теперь загрузка скрипта гарантирована. Чтобы продолжить работу, необходимо дождаться окончания процесса.


Посещать сайт Heroku, чтобы войти в приложение нужно после завершения процесса. Здесь необходимо открыть вкладку Resources.



Задействовать поочередно «карандаш» и «ползунок» Confirm.


Визуально найти вкладку More > View logs (она находится в верхнем углу справа), активировать и выждать паузу приблизительно 10 секунд.


Если ошибки отсутствуют, значит, работа проделана отлично.

Больше интересных новостей