Skip to content

alasaijir/sVKAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 

Repository files navigation

sVKAPI - Easy lib for studying vk api

Еще одна библиотека для работы с VK API. Для установки нужно написать в консоль pip install svkapi, а затем импортировать:

from sVKAPI.core import *

Инициализация

Для начала нужно создать объект для работы с api: apiObj = API(), после чего необходимо СРАЗУ пройти аутентификацию. Сделать это можно тремя способами:

  1. apiObj.authenticate(username = "...", password = "...") - идентификация через логин и пароль https запросами. После успешной авторизации будет сохранена сессия и токен.
  2. apiObj.authenticate(token = "...") или apiObj.setToken("...") - прямая передача токена в обьект. Важно! Если вы проходите авторизацию не в первый раз (т.е существуют файлы токена/сессии), то любые параметры, переданные в authenticate(...) будут проигнорированны.
  3. apiObj.authenticate() - загрузка автоматически сохраненного токена из файла.

Обратите внимание: Объект apiObj персистентный, т.е сохраняет данные авторизации (токен или сессия) в файл после выхода из программы (в зашифрованном виде). Таким образом пройдя авторизацию один раз, все последующие можно проходить 3-им способом.

Важно! Используя 1-ый метод, либо 3-ий посредством 1-го, вам будет недоступна секция Messages, и, следовательно, Long Poll.

Работа с API

Стандартные запросы

Для стандартного запроса необходимо вызвать apiObj.call(_), в который передать название метода, и необходимые для него параметры (кроме токена и версии API), например:

apiObj.call("friends.get", user_id = 175486984, fields = "city").

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

Со всеми методами VK API можно ознакомиться тут.

Long Poll

Метод apiObj.longPoll() посылает запрос на сервер и ждет, пока сервер не вернет какие-либо события. Отправленные сервером данные мы получаем в виде словаря (подробнее), который можем обработать. Пример использования:

from sVKAPI.core import *


apiObj = API()
apiObj.authenticate(token = "...")

while True:
    updates = apiObj.longPoll()
    print(updates)

#   Ответ 
#  
#   [[4, 747386, 17, 175486984, 1589673104, 'Hello', {'title': ' ... '}, {}, 2100133870]]
#  
#   означает, что в 1589673104 (timestamp) нам пришло сообщение с ID 747386 и флагами 17 от 175486984,
#   в котором содержится Hello

Для заметок

Если проблемы с авторизацией, попробуйте удалить файлы .enc