OldVKAPI
Синхронный Python-клиент к API из OldVK.apk v1.3.1 (com.vkontakte.android).
Протокол восстановлен дизассемблированием classes.dex — подробности в
OldVK_API.md (главы 2–10).
Коротко о протоколе: все вызовы — POST http(s)://oldvk.mooo.com:8080/api.php
с полями method/v=3.0/format=json/api_id=2274003 + параметры + sig
(MD5(uid + сортированные key=value + secret)) + sid. Авторизация —
auth.getTokenSecure → digest(MD5) → auth.getSessionSecure.
Установка
pip install requests
pip install -e . # из каталога OldVKAPI
Быстрый старт
from oldvkapi import OldVK
vk = OldVK(session_file="~/.oldvkapi/session.json")
# Вход логином (один раз; дальше сессия берётся из JSON-файла):
vk.login("user@example.com", "password")
# или готовой сессией:
# vk = OldVK.from_session(uid=123, sid="...", secret="...")
print(vk.messages.dialogs()) # диалоги через execute-шаблон
print(vk.wall.posts(owner_id=123)) # посты стены
vk.activity.online() # heartbeat онлайна
Разделы
Доступ — свойствами клиента, методы повторяют имена API из APK:
| Свойство | Методы (примеры) |
|---|---|
users |
get_profiles(uids, fields, name_case) |
friends |
get, get_by_phones, add, delete, mutual, get_requests |
groups |
get_by_id |
status |
get, set |
activity |
online |
messages |
send, get_history, get_by_id, delete, mark_as_read, dialogs, search, slow_poll* |
wall |
post, delete, add_comment, delete_comment, get_comments, add_like, delete_like, posts* |
likes |
add, delete |
polls |
add_vote, get_by_id |
photos |
get_albums, get, get_user_photos, get_by_id, get_comments, get_tags, create_comment, create_album, edit_album, delete_album, delete, edit, comments_full, info |
video |
get, save, get_comments |
audio |
get, get_albums, search, add, delete, direct_url* |
docs |
get_upload_server, save |
notes |
get_by_id, get_comments |
places |
search, get_checkins, checkin, add, get_by_id, get_city_by_id, get_country_by_id |
newsfeed |
get, get_comments |
* — через execute (готовые шаблоны в oldvkapi/execute.py).
Прямой вызов любого метода: vk.call("wall.post", owner_id=1, message="hi").
Ошибки и капча
from oldvkapi import CaptchaNeeded, ReauthNeeded, ApiError
try:
vk.wall.post(owner_id=1, message="hi")
except CaptchaNeeded as cap:
print(cap.captcha_img) # показать картинку пользователю
key = input("Капча: ")
vk.call("wall.post", owner_id=1, message="hi",
captcha_sid=cap.captcha_sid, captcha_key=key)
except ReauthNeeded:
vk.reauth() # нужен login() с паролем в памяти
except ApiError as err:
print(err.code, err.message)
error_code 7 возвращается как None (как в самом приложении).
LongPoll
for update in vk.longpoll.updates(): # бесконечный генератор
print(update)
refresh() — новый server/key/ts; poll_url() — текущий a_check-URL;
slow_poll(time_offset) — запасной опрос из приложения.
Загрузка файлов
vk.uploader.upload_wall_photo("pic.jpg", owner_id=vk.uid, message="Фото!")
vk.uploader.upload_album_photo(aid=123, file_path="pic.jpg")
vk.uploader.upload_audio("track.mp3")
vk.uploader.upload_doc("file.pdf")
vk.uploader.upload_video("Ролик", "vid.mp4", description="...")
Оговорка про digest
Формула digest = MD5(SECRET:nonce:login:password) восстановлена из
байт-кода Auth.doAuth (порядок операндов — по append-цепочке). Если сервер
её отвергнет — используйте oldvkapi.auth.auth_session_raw(nonce, login, digest)
с собственной формулой.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file oldvkapi-0.1.0.tar.gz.
File metadata
- Download URL: oldvkapi-0.1.0.tar.gz
- Upload date:
- Size: 22.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b8d65f245e46917a11a1ad2f99bc45635465ba8a202587eac6e3b16dd087a42
|
|
| MD5 |
f317f54b9bc3caa41e5e82c5b1454484
|
|
| BLAKE2b-256 |
331b0cf9169ff74861b9d6a31f9f4b81bef36a99f41cd581f34c8592ae4db969
|
File details
Details for the file oldvkapi-0.1.0-py3-none-any.whl.
File metadata
- Download URL: oldvkapi-0.1.0-py3-none-any.whl
- Upload date:
- Size: 25.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69685afcbafc8ab0e91a503c11cc881b0c57f7ff1cb2001c0a83b2a4f419dec2
|
|
| MD5 |
d79467161589dffc606f095478b30f71
|
|
| BLAKE2b-256 |
2d762963fd720a0276e30ce30677c7c61de7c5c09546326f5947c0b186b5d121
|