Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Бан аккаунта #432

Open
Nikita2305 opened this issue Nov 18, 2021 · 21 comments
Open

Бан аккаунта #432

Nikita2305 opened this issue Nov 18, 2021 · 21 comments

Comments

@Nikita2305
Copy link

Nikita2305 commented Nov 18, 2021

Изначально аккаунт не заблокирован.

После авторизации, а затем отправки первого запроса получаю ошибку:
[5] User authorization failed: user is blocked.

Затем оказывается, что аккаунт заблокирован.
Аккаунт можно восстановить, но не более 2 раз, затем следует более длительный бан, но не перманентный.

Ошибка возникает при отправке запроса с конкретного ПК, с которого ранее(несколько дней назад) было осуществлено много запросов к API. На другом ПК ошибка не воспроизвелась (информация от товарища).
Что может быть причиной?

P.S. выдача бана не зависит от vk_config и аккаунта. Код который работал раньше - перестал работать по этой причине.

P.P.S. Повторил сценарий на третьем ПК, с абсолютно новым аккаунтом ВК, под другим способом подключения к интернету. Вновь получил бан.

Окружение

vk_api: 11.9.6

Пример

vk_session = vk_api.VkApi(login="login", password="password")
vk_session.auth()
vk = vk_session.get_api()

link = input()
link = link.split('/')[-1]
vk.users.get(user_ids=link)
@python273
Copy link
Owner

Не уверен в чем именно причина, другие люди тоже писали о блокировках.

Если нужна аутентификация по логину и паролю, то попробуйте создать свое приложение и передавать в app_id. Если не нужна, то руками получить токен и передавать в token.

@sadspirit
Copy link

По результатам экспериментов (20 пожженых аккаунтов):
Банилка реагирует на флоу авторизации (на что конкретно - не знаю). Либо сразу блочит, либо пропускает и блочит через несколько минут.

Точно не помогает:

  • смена appid (свои/чужие/новые/старые)
  • смена IP

Если юзать токен полученный легальным путем и не трогать auth, то все работает (в том числе с скомпрометированных
многочисленными банами ip)

@python273
Copy link
Owner

Можно еще попробовать ставить другой юзерагент

например

vk_session.http.headers['User-agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0'

@sadspirit
Copy link

Да, юзер агент тоже не помогает. Пробовал разные варианты. Также менял версию API. Выставлял задержку между запросами в секунду.
Особенности блокировки:

  • Блокировка: Подозрительная активность.
  • Токен получает нормально, и уже на 1-10 запросе блочит.
  • Блок прилетает на методы group/wall. К примеру на перечисление городов (список стран/городов) - не трогает

Учитывая, вышеперечисленное, думаю аккаунт попадает в подозрительные, после прохождения flow авторизации. Может не хватает какого параметра при эмуляции входа или js чек какой-нибудь вставили (не рисерчил).

@zt50tz
Copy link

zt50tz commented Nov 18, 2021

@sadspirit

Если юзать токен полученный легальным путем

Прошу прощения, можете раскрыть тему про "легальный путь" — как получить такой токен?

Имеется ввиду создание приложения и получение токена через него?

@Ne0shka
Copy link

Ne0shka commented Nov 18, 2021

Аналогичная проблема - блокнули страницу 2 раза подряд. Рецепт: залогиниться и выполнить users.get. Запрос выполняют и блочат страницу. Вычисляют ботов?

UPD: пока альтернативный способ - использовать токен, к примеру от VK Admin.

@DmitryZoloto
Copy link

@sadspirit

Если юзать токен полученный легальным путем

Прошу прощения, можете раскрыть тему про "легальный путь" — как получить такой токен?

Имеется ввиду создание приложения и получение токена через него?

https://vk.com/dev/first_guide

@r35p3ct
Copy link

r35p3ct commented Nov 19, 2021

Подтвержаю, с позавчерашнего дня стали банить.
ПС всегда подключался с использованием своего ID приложения.

@yinelos
Copy link

yinelos commented Nov 19, 2021

Друзья, если найдете решение данной проблемы - отпишите пожалуйста сюда.

@l1zt0p
Copy link

l1zt0p commented Nov 19, 2021

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

@r35p3ct
Copy link

r35p3ct commented Nov 19, 2021

Друзья, если найдете решение данной проблемы - отпишите пожалуйста сюда.

Получил токен через https://oauth.vk.com/authorize?client_id=приложение&display=page&redirect_uri=https://oauth.vk.com/blank.html&response_type=token
&scope=wall,offline
ручками и передал его:
vk_session = vk_api.VkApi(token=acc_token)

еще добавил, на всякий случай:
vk_session.http.headers[ 'User-agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0'

@dashedman
Copy link
Contributor

А получить remixsid возможно только через авторизацию по логину?

@rasperepodvipodvert
Copy link

Получил токен через https://oauth.vk.com/authorize?client_id=приложение&display=page&redirect_uri=https://oauth.vk.com/blank.html&response_type=token
&scope=wall,offline ручками и передал его:
vk_session = vk_api.VkApi(token=acc_token)

еще добавил, на всякий случай:
vk_session.http.headers[ 'User-agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0'

Попробовал выше описанные примеры - либо бан либо требует 'Login is required to auth'
изображение

@vypivshiy
Copy link

vypivshiy commented Nov 20, 2021

При реверсе их официального приложения ВК было выявлено, что можно авторизовываться через bearer, подставляя токен в значение заголовка.
Брал токены от разных приложений (kate, vk admin etc) и работает. (Брал руками токен, на баны не проверял, проверьте и отпишитесь)

Программно токен не пробовал получать, но закину сюда идею, может быть кто нибудь исследует проблему и сможет её решить.

from requests import Session
import vk_api

user_agent = {"User-Agent": "VKShitApp/6.9.1-5828 (Android 14.8.8; SDK 26; armeabi-v7a; foobar ShitVkOS; ru; 800x640)"}

token = "my_secret_token"
session = Session()
session.headers.update(user_agent)
session.headers.update({"Authorization": f"Bearer {token}"})

vk_session = vk_api.VkApi(session=session, api_version="5.181")
vk_api_session = vk_session.get_api()
print(vk_api_session.account.getInfo())

@l1zt0p
Copy link

l1zt0p commented Nov 20, 2021

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

@rasperepodvipodvert
Copy link

Удалось починить вот таким методом, с предварительным удалением vk_config.v2.json

vk_session = vk_api.VkApi(
            login=settings.VK_LOGIN,
            password=settings.VK_PASSWORD,
        )
        try:
            vk_session.http.headers['User-agent'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:94.0) Gecko/20100101 Firefox/94.0'
            vk_session.auth(token_only=True)
        except vk_api.AuthError as error_msg:
            print(error_msg)
            return error_msg

@dashedman
Copy link
Contributor

Удалось починить вот таким методом, с предварительным удалением vk_config.v2.json

vk_session = vk_api.VkApi(
            login=settings.VK_LOGIN,
            password=settings.VK_PASSWORD,
        )
        try:
            vk_session.http.headers['User-agent'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:94.0) Gecko/20100101 Firefox/94.0'
            vk_session.auth(token_only=True)
        except vk_api.AuthError as error_msg:
            print(error_msg)
            return error_msg

а без token_only=True не работает?

@MrTransistorsChannel
Copy link

Может быть связано с #437

@salykin
Copy link

salykin commented Nov 24, 2021

В моём случае сработало так:

vk_session = vk_api.VkApi(login, password)
vk_session.http.headers['User-agent'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:94.0) Gecko/20100101 Firefox/94.0'
vk_session.auth()

Не уверен, может быть, дело было в аккаунтах.

vk_api: 11.9.6

@AsmanovLev
Copy link

Здравствуйте, может быть вам поможет аутификация с токеном? Я вот просто сколько уже сижу - ни разу не банили.

import vk_api
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
from vk_api.longpoll import VkLongPoll, VkEventType
banlist = [000000000,000000000] # тут писать id-шники тех кого хочешь удалять сообщения 
def auth_handler():
    key = input("Введите код для двухфакторной аутификации: ")
    remember_device = True
    return key, remember_device
def main():                       
    login, password = '+78005553535','password'
    vk_session = vk_api.VkApi(
        login, password, token="0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234", app_id="2685278",
        auth_handler=auth_handler
    )
    try:
        vk_session.auth()
    except vk_api.AuthError as error_msg:
        print(error_msg)
        return

    longpoll = VkLongPoll(vk_session)
    vk = vk_session.get_api()
    for event in longpoll.listen():
        if event.type == VkEventType.MESSAGE_NEW:
            print('New message:')
            if event.from_user or event.from_chat:
                if event.user_id in banlist:
                    vk.messages.delete(message_ids=event.message_id, peer_id=event.peer_id)
                if event.from_chat:
                    print(event.user_id, 'in chat', event.chat_id)
                elif event.from_user:
                    print('from user:', event.user_id)
            print('Text: ', event.text)
            print()


if __name__ == '__main__':
    main()

Токен получить можно тут. В примере указан app_id для kate mobile

@mewforest
Copy link

Здравствуйте, может быть вам поможет аутификация с токеном? Я вот просто сколько уже сижу - ни разу не банили.

Большое человеческое СПАСИБО!
Наконец-то получилось пофиксить вход для проблемных аккаунтов, над которой бился несколько суток.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests