Задать вопрос
@nekolov

Кто работал на python с API vk с помощью библиотеки 'vk'?

Добрый вечер,
разбираюсь с библиотекой vk на python , и не могу понять в чем дело и почему у меня она отказывается работать. Приведенный ниже пример взят из сети и должен работать насколько я понимаю без токена, но почему то не работает, показывая следующие ошибки.

Установил: pip install vk

import datetime
from time import sleep
import vk

def get_status(current_status, vk_api, id):
    profiles = vk_api.users.get(user_id=id, fields='online, last_seen')
    if (not current_status) and (profiles[0]['online']):  # если появился в сети, то выводим время
        now = datetime.datetime.now()
        print('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
        print('Появился в сети в: ', now.strftime("%d-%m-%Y %H:%M"))
        return True
    if (current_status) and (not profiles[0]['online']):  # если был онлайн, но уже вышел, то выводим время выхода
        print('Вышел из сети: ', datetime.datetime.fromtimestamp(profiles[0]['last_seen']['time']).strftime('%d-%m-%Y %H:%M'))
        print('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
        return False
    return current_status

if __name__ == '__main__':
    id = input("ID пользователя: ")
    session = vk.Session()
    vk_api = vk.API(session)
    current_status = False
    while(True):
        current_status = get_status(current_status, vk_api, id)
        sleep(60)


запускаю и ввожу Id юзера:
ID user: 1
Traceback (most recent call last):
  File "test.py", line 24, in <module>
    current_status = get_status(current_status, vk_api, id)
  File "test.py", line 6, in get_status
    profiles = vk_api.users.get(user_id=1, fields='online, last_seen')
  File "/usr/local/lib/python2.7/dist-packages/vk/api.py", line 173, in __call__
    return self._api._session.make_request(self)
  File "/usr/local/lib/python2.7/dist-packages/vk/api.py", line 102, in make_request
    raise error
vk.exceptions.VkAPIError: 5. User authorization failed: no access_token passed.. request_params = {u'oauth': u'1', u'fields': u'online, last_seen', u'user_id': u'1', u'method': u'users.get'}
  • Вопрос задан
  • 228 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Метод users.get уже давно требует токен. Ссылка: клик
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы