Открыть на LolzteamДругие скрипты на GitHub

Привет! Я расскажу, как ставить шаги ВКонтакте через API.

Для начала нужно получить access token от приложения ВК для андроид.

Для этого нужно подставить в ссылку свой логин и пароль и перейти по ней в режиме инкогнито:

https://oauth.vk.com/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username=ЛОГИН&password=ПАРОЛЬ

Если у вас включена двухфакторка, то ответ будет такой:

{"error":"need_validation","error_description":"open redirect_uri in browser [5]. Also you can use 2fa_supported param","validation_type":"2fa_app","validation_sid":"2fa..........","phone_mask":"+7 *** *** ** **","redirect_uri":"https:\/\/m.vk.com\/login?act=authcheck&api_hash=......"}

Нужно перейти по подчёркнутой ввести там код 2FA, после чего токен будет в адресной строке, как обычно.

Если же у вас нет двухфакторки, токен вернется сразу же после перехода по первой ссылке.


Теперь нам нужно применить метод vkRun.setSteps с юзер агентом от приложения ВК. У меня юзер агент от приложения ВК такой:

VKAndroidApp/7.7-10445 (Android 11; SDK 30; arm64-v8a; Xiaomi M2003J15SC; ru; 2340x1080)

Вот простой код на Python:

from urllib import request
steps = 80000 # количество шагов
distance = 50000 # количество метров
date = '2021-01-12' # дата в формате YYYY-MM-DD
access_token = 'token'
user_agent = 'VKAndroidApp/7.7-10445 (Android 11; SDK 30; arm64-v8a; Xiaomi M2003J15SC; ru; 2340x1080)'
print(request.urlopen(request.Request('https://api.vk.com/method/vkRun.setSteps?steps='+str(steps)+'&distance='+str(distance)+'&date='+date+'&access_token='+access_token+'&v=5.131',
headers={'User-Agent': user_agent})).read().decode('utf-8'))

А еще можно сделать так, чтобы дата подставлялась автоматически:

from urllib import request
from datetime import datetime
steps = 80000
distance = 50000
date = datetime.today().strftime('%Y-%m-%d')
access_token = 'token'
user_agent = 'VKAndroidApp/7.7-10445 (Android 11; SDK 30; arm64-v8a; Xiaomi M2003J15SC; ru; 2340x1080)'
print(request.urlopen(request.Request('https://api.vk.com/method/vkRun.setSteps?steps='+str(steps)+'&distance='+str(distance)+'&date='+date+'&access_token='+access_token+'&v=5.131',
headers={'User-Agent': user_agent})).read().decode('utf-8'))

Если все правильно получилось, ответ будет такой:

{"response":{"steps":80000,"distance":50000}}

Это значит, что шаги успешно установлены!

На этом все! Удачи!

Статья написана 12 января 2022, обновлена 15 июля 2023