python273 / vk_api

Модуль для создания скриптов для ВКонтакте | vk.com API wrapper
https://pypi.org/project/vk-api/
Apache License 2.0
1.33k stars 322 forks source link

Нерабочий код из документации #417

Closed Pro100rus32 closed 3 years ago

Pro100rus32 commented 3 years ago

Последняя версия библиотеки. Я взял код, вот:

import vk_api

vk_session = vk_api.VkApi('+71234567890', 'mypassword') #понятное дело я ввёл сюда верные данные от аккаунта
vk_session.auth()

vk = vk_session.get_api()

print(vk.wall.post(message='Hello world!'))

Ошибка:

vk_api.exceptions.ApiError: [5] User authorization failed: no access_token passed.

python273 commented 3 years ago

У меня работает. Могу посмотреть лог запросов:

import vk_api
from vk_api.utils import enable_debug_mode

def auth_handler():
    return input("Enter authentication code: "), True

vk_session = vk_api.VkApi('+123', 'asd', auth_handler=auth_handler)
enable_debug_mode(vk_session, print_content=True)

vk_session.auth()
vk_session.method('users.get')

Перед запуском поменять пароль в ВК, запустить, из лога убрать логины/пароли, поменять пароль еще раз и отправить лог на vk_api@python273.pw файлом

Pro100rus32 commented 3 years ago

У меня работает. Могу посмотреть лог запросов:

import vk_api
from vk_api.utils import enable_debug_mode

def auth_handler():
    return input("Enter authentication code: "), True

vk_session = vk_api.VkApi('+123', 'asd', auth_handler=auth_handler)
enable_debug_mode(vk_session, print_content=True)

vk_session.auth()
vk_session.method('users.get')

Перед запуском поменять пароль в ВК, запустить, из лога убрать логины/пароли, поменять пароль еще раз и отправить лог на vk_api@python273.pw файлом

Этот код не работает, нужен токен для этого vk.wall.post(message='Hello world!')

Примерно вот так:

vk_session = vk_api.VkApi(login, password,auth_handler=auth_handler, token=access_token)

Спасибо за ответ)

python273 commented 3 years ago

Этот код не работает

Какой этот?

нужен токен для

Если переданы логин с паролем, то токен должен быть получен при вызове vk_session.auth(). Можно без логина с паролем напрямую передавать токен, но и вызывать auth не нужно

Pro100rus32 commented 3 years ago

Какой этот?

Который в документации. Для работы, нужно передавать ещё и токен. Я не знаю, нужно ли так только для аккаунта с двухфакторкой, или для всех.

Дублирую ошибку: vk_api.exceptions.ApiError: [5] User authorization failed: no access_token passed.