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

Запрет messages #219

Open
Andreuno opened this issue Jan 15, 2019 · 34 comments
Open

Запрет messages #219

Andreuno opened this issue Jan 15, 2019 · 34 comments

Comments

@Andreuno
Copy link

В связи с планируемыми событиями у ВК, в феврале, хочу задать соответствующий вопрос: Будут ли разработчики библиотеки бороться с этим? Как раньше боролись с методом audio...

@python273
Copy link
Owner

У меня все меньше времени и желания этим заниматься, так что скорее всего не будет. В принципе это можно реализовать отедльным модулем и залить в pypi, так что делайте кому нужно. Не объязательно даже на vk_api завязываться, можно просто куки от vk_api брать или requests сессию

Ну и возможно это обходится использованием ключей от официальных приложений

@Andreuno
Copy link
Author

Andreuno commented Feb 1, 2019

У меня все меньше времени и желания этим заниматься, так что скорее всего не будет. В принципе это можно реализовать отедльным модулем и залить в pypi, так что делайте кому нужно. Не объязательно даже на vk_api завязываться, можно просто куки от vk_api брать или requests сессию

Ну и возможно это обходится использованием ключей от официальных приложений

Спасибо за ответ!)
Релаьно годная либа, пользуесь только ей. Спасибо тебе за такое)

@TheDeaX-Lab
Copy link

@Andreuno Короче, я создам у себя в репозитории обход messages, будет основан на selenium. Удобство этой штуки будет в том что каптча у вас будет простая нежели каждый раз текстово вводить

@Andreuno
Copy link
Author

Andreuno commented Mar 2, 2019

@Andreuno Короче, я создам у себя в репозитории обход messages, будет основан на selenium. Удобство этой штуки будет в том что каптча у вас будет простая нежели каждый раз текстово вводить

Он на питоне или на java? И в чем суть удобства с капчей, ну что ты придумал то-есть?)

@steeldimon
Copy link

steeldimon commented Mar 2, 2019

@Andreuno Короче, я создам у себя в репозитории обход messages, будет основан на selenium. Удобство этой штуки будет в том что каптча у вас будет простая нежели каждый раз текстово вводить

То есть, нельзя будет использовать API с selenium нормально без браузера? А как же сервера? На сколько я помню, selenium нормально только в связке с графическим браузером работает, не консольным.

@steeldimon
Copy link

steeldimon commented Mar 2, 2019

@Andreuno Короче, я создам у себя в репозитории обход messages, будет основан на selenium. Удобство этой штуки будет в том что каптча у вас будет простая нежели каждый раз текстово вводить

То есть, нельзя будет использовать API с selenium нормально без браузера? А как же сервера? На сколько я помню, selenium нормально только в связке с графическим браузером работает, не консольным.

Я посмотрел вариант использования requests, на сколько я понимаю, cookies и так есть в сессии, и через эту сессию работать с сообщениями через парсер типа beautifulsoup и post/get requests

@steeldimon
Copy link

steeldimon commented Mar 4, 2019

@Andreuno Короче, я создам у себя в репозитории обход messages, будет основан на selenium. Удобство этой штуки будет в том что каптча у вас будет простая нежели каждый раз текстово вводить

То есть, нельзя будет использовать API с selenium нормально без браузера? А как же сервера? На сколько я помню, selenium нормально только в связке с графическим браузером работает, не консольным.

Я посмотрел вариант использования requests, на сколько я понимаю, cookies и так есть в сессии, и через эту сессию работать с сообщениями через парсер типа beautifulsoup и post/get requests

В общем работать через lxml или beautyfulsoup можно прекрасно парсить сообщения, получать их и отправлять. Важный момент что requests сессию можно взять прямо из библиотеки (на практике не пробовал еще). Фактически можно реализовать метод messages через requests к web версии и обернуть их в привычную часть библиотеки в привычном виде. Если у кого есть время и желание сделать, будет супер. Дойдут руки постараюсь сделать сам.

@xkord
Copy link
Contributor

xkord commented Mar 7, 2019

@Andreuno Короче, я создам у себя в репозитории обход messages, будет основан на selenium. Удобство этой штуки будет в том что каптча у вас будет простая нежели каждый раз текстово вводить

То есть, нельзя будет использовать API с selenium нормально без браузера? А как же сервера? На сколько я помню, selenium нормально только в связке с графическим браузером работает, не консольным.

Я посмотрел вариант использования requests, на сколько я понимаю, cookies и так есть в сессии, и через эту сессию работать с сообщениями через парсер типа beautifulsoup и post/get requests

В общем работать через lxml или beautyfulsoup можно прекрасно парсить сообщения, получать их и отправлять. Важный момент что requests сессию можно взять прямо из библиотеки (на практике не пробовал еще). Фактически можно реализовать метод messages через requests к web версии и обернуть их в привычную часть библиотеки в привычном виде. Если у кого есть время и желание сделать, будет супер. Дойдут руки постараюсь сделать сам.

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

@xkord
Copy link
Contributor

xkord commented Mar 7, 2019

Пришло такое сообщение в лс от Администрации вк: "...Отметим, что приложениям, работающим с сообщениями пользователя с сервера, доступ выдан быть не может..."

Собственно вопрос, кто-нибудь знает это означает, что при получении токена пользователя (vk_token) через мобильное приложение и отправки этого токена на сервер и запуске на сервере примерно следующего кода:

vk_session = vk_api.VkApi(token=self.vk_token, app_id=self.app_id, 
                          client_secret=self.vk_client_secret)
self.vk = vk_session.get_api()

то такому приложению доступ к messages выдан не будет? Или я что-то не так понял..

@MrSmitix
Copy link

MrSmitix commented Mar 8, 2019

Скорее всего они имели в виду приложения, авторизация в которых проходит через implicit flow. В документаций кстати об этом написано.

Меня интересует вопрос обхода ограничений по использованию методов message. Сейчас ещё можно выполнять message.send юзеру через vk.com/dev. А вот если отсылать что-то в беседу то "Permission to perform this action is denied". Кто как обходит? Авторизация под офф. приложением? Пытался косить под Kate, но получил "Access denied: no access to call this method".

@MrSmitix
Copy link

MrSmitix commented Mar 8, 2019

Поправочка. Через vk.com/dev пока ещё работает. Но я думаю что не на долго. Возможно чуть позже залью код для обхода к себе.

@hikiko4ern
Copy link

hikiko4ern commented Mar 8, 2019

@MrSmitix, не советую проходить авторизацию с данными офф. приложений - техподдержка подтвердила, что за это скоро начнуть банить аккаунты. Тем не менее, при закосе под оф приложение под ведроид, методы сообщений работают.

@MrSmitix
Copy link

MrSmitix commented Mar 8, 2019

@hikiko4ern, не можешь подсказать app_id и app_secret для авторизации?

@hikiko4ern
Copy link

@MrSmitix, *тык*

@xkord
Copy link
Contributor

xkord commented Mar 9, 2019

Скорее всего они имели в виду приложения, авторизация в которых проходит через implicit flow. В документаций кстати об этом написано.

Меня интересует вопрос обхода ограничений по использованию методов message. Сейчас ещё можно выполнять message.send юзеру через vk.com/dev. А вот если отсылать что-то в беседу то "Permission to perform this action is denied". Кто как обходит? Авторизация под офф. приложением? Пытался косить под Kate, но получил "Access denied: no access to call this method".

Получается получение токена через Android SDK и работа с этим токеном на сервере - остается разрешенной фичей?

@TheDeaX-Lab
Copy link

TheDeaX-Lab commented Mar 9, 2019

#219 (comment) есть уязвимость данной системы. Смысл таков что кто прошёл модерацию, то даётся не токен который работает на одного человека, а разрешается app_id! Что мы в итоге имеем, забираем app_id у KateMobile и дело решено! Хз как у вас, но у меня всё отлично

@steeldimon
Copy link

@Andreuno Короче, я создам у себя в репозитории обход messages, будет основан на selenium. Удобство этой штуки будет в том что каптча у вас будет простая нежели каждый раз текстово вводить

То есть, нельзя будет использовать API с selenium нормально без браузера? А как же сервера? На сколько я помню, selenium нормально только в связке с графическим браузером работает, не консольным.

Я посмотрел вариант использования requests, на сколько я понимаю, cookies и так есть в сессии, и через эту сессию работать с сообщениями через парсер типа beautifulsoup и post/get requests

В общем работать через lxml или beautyfulsoup можно прекрасно парсить сообщения, получать их и отправлять. Важный момент что requests сессию можно взять прямо из библиотеки (на практике не пробовал еще). Фактически можно реализовать метод messages через requests к web версии и обернуть их в привычную часть библиотеки в привычном виде. Если у кого есть время и желание сделать, будет супер. Дойдут руки постараюсь сделать сам.

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

Сейчас закончу основную часть бота с celery и прочими вещами, после отладки займусь сообщениями через requests

@xkord
Copy link
Contributor

xkord commented Mar 11, 2019

#219 (comment) есть уязвимость данной системы. Смысл таков что кто прошёл модерацию, то даётся не токен который работает на одного человека, а разрешается app_id! Что мы в итоге имеем, забираем app_id у KateMobile и дело решено! Хз как у вас, но у меня всё отлично

Не совсем понятно, достаточно забрать только app_id? А CLIENT_SECRET брать какой и токен пользователя?

@hikiko4ern
Copy link

hikiko4ern commented Mar 11, 2019

@xkord, всегда можно декомплировать и посмотреть, как это делает приложение; токен через Implicit Flow получать.

...
public static String getUrl(String paramString1, String paramString2)
  {
    StringBuilder localStringBuilder = new StringBuilder();
    localStringBuilder.append("https://oauth.vk.com/authorize?client_id=");
    localStringBuilder.append(paramString1);
    localStringBuilder.append("&display=mobile&scope=");
    localStringBuilder.append(paramString2);
    localStringBuilder.append("&redirect_uri=");
    localStringBuilder.append(URLEncoder.encode(redirect_url));
    localStringBuilder.append("&response_type=token&v=");
    localStringBuilder.append(URLEncoder.encode("5.78"));
    return localStringBuilder.toString();
  }
...
...
String str = Auth.getUrl(KateConstants.API_ID, paramBundle);
...
...
public class KateConstants
{
  public static String API_ID = "2685278";
  public static String tmp = "hHbJug59sKJie78wjrH8";
}
...

@xkord
Copy link
Contributor

xkord commented Mar 11, 2019

@xkord, всегда можно декомплировать и посмотреть, как это делает приложение; токен через Implicit Flow получать.

...
public static String getUrl(String paramString1, String paramString2)
  {
    StringBuilder localStringBuilder = new StringBuilder();
    localStringBuilder.append("https://oauth.vk.com/authorize?client_id=");
    localStringBuilder.append(paramString1);
    localStringBuilder.append("&display=mobile&scope=");
    localStringBuilder.append(paramString2);
    localStringBuilder.append("&redirect_uri=");
    localStringBuilder.append(URLEncoder.encode(redirect_url));
    localStringBuilder.append("&response_type=token&v=");
    localStringBuilder.append(URLEncoder.encode("5.78"));
    return localStringBuilder.toString();
  }
...
...
String str = Auth.getUrl(KateConstants.API_ID, paramBundle);
...
...
public class KateConstants
{
  public static String API_ID = "2685278";
  public static String tmp = "hHbJug59sKJie78wjrH8";
}
...

Спасибо, помогло! Интересно, как долго это будет работать. Пока разработчики Kate Mobile не перегенерят client_secret и не сделают нормальную защиту от декомпилирования...

Интересно, а можно как-то провернуть подобную схему через получение токена с помощью sdk?

@hikiko4ern
Copy link

пока для доступа к сообщениям не сделают какую-нибудь хитрую систему, как для доступа к аудио

client_secret не используется при авторизации
даже если и сделают какую-то защиту, app_id останется

Интересно, а можно как-то провернуть подобную схему через получение токена с помощью sdk?

какую "подобную схему"?

@xkord
Copy link
Contributor

xkord commented Mar 11, 2019

пока для доступа к сообщениям не сделают какую-нибудь хитрую систему, как для доступа к аудио

client_secret не используется при авторизации
даже если и сделают какую-то защиту, app_id останется

Интересно, а можно как-то провернуть подобную схему через получение токена с помощью sdk?

какую "подобную схему"?

У меня сервис устроен следующим образом, получаю токен пользователя через sdk, далее токен отправляю на сервер и работаю с messages с сервера:

vk_session = vk_api.VkApi(token=self.vk_token, app_id=self.app_id, 
                          client_secret=self.vk_client_secret)
self.vk = vk_session.get_api()

У меня есть CLIENT_SECRET и APP_ID от Kate Mobile, а токен через SDK я уже не смогу получить, только Implicit Flow. Вот я и подумал, может можно все таки как-то получить его через API SDK.

@Andreuno
Copy link
Author

Серьезно? У меня все прекрасно работает на Kate APP_ID... Странно

@hikiko4ern
Copy link

и работаю с messages с сервера

@xkord, вроде где-то было написано, что теперь нельзя использовать апи сообщений с сервера - только клиентский.

@xkord
Copy link
Contributor

xkord commented Mar 12, 2019

и работаю с messages с сервера

@xkord, вроде где-то было написано, что теперь нельзя использовать апи сообщений с сервера - только клиентский.

Если быть точнее, то "работал". В том то и дело, что теперь нельзя. Придется всю логику работы переносить на клиента. Потому что как я понял Implicit flow для браузера, а мне надо получить токен с помощью SDK для уже залогиненного пользователя в оффициальном приложении вк на телефоне.

@RSupreme10x
Copy link

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

@Noop1
Copy link

Noop1 commented Nov 23, 2019

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

group_join / https://vk.com/dev/groups_events

@Neqit
Copy link

Neqit commented Dec 5, 2019

Hi, ещё актуальны CLIENT_SECRET и APP_ID от Kate Mobile?
У выдает ошибку при попытки исользования message.get
Если нет, то есть ли способы без модерации приложения получить доступ к сообщениям?

@TheDeaX-Lab
Copy link

@Neqit вообще должно быть актуально

@Neqit
Copy link

Neqit commented Dec 6, 2019

@TheDeaX-Lab Хмм..
А какие аргументы используются для vk_api.VkApi? токен, клиент_сикрет и апп_айди?

@TheDeaX-Lab
Copy link

@Neqit только app_id https://github.com/TheDeaX-Lab/fast_start_vk

@yungdev777
Copy link

есть решение!
vk_session = vk_api.VkApi('логин', 'пароль', app_id=2685278)

@hikiko4ern
Copy link

@yungdev777
про использование IDшника от Kate Mobile уже не раз говорили - 1 2 3

ТП ещё при вводе этого запрета отвечала, что за использование данных офф приложений будут банить, а вот не начнут ли банить за использование данных чужих приложений - неизвестно, т.ч. все обходы - на свой страх и риск

@EvGid
Copy link

EvGid commented Mar 19, 2024

Есть актуальный фак, как чат бота сделать новичку?

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

13 participants