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

Как пройти авторизацию VKontakte на Java?

Пишу клиент для ВКонтакте на Java. Необходимо получить токен, используя логин и пароль, заданные пользователем. На хабре и в гугле по этой теме материалов нету. Прошу вас помочь кусочком кода.
  • Вопрос задан
  • 2817 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@andre_macareno
Во-первых, нужно создать Standalone-приложение через специальную форму ВК.
Во-вторых, если есть возможность и желание, можно использовать какой-нибудь WebView, чтобы провести пользователя через всякие окошки вроде ввода авторизации и разрешения доступа.
Но если такой способ не подходит, то можно просто распарсить HTML, и отправлять POST-запросы, а в самом конце выдрать токен из адресной строки. Для Android-приложения я заменял # на "?" и разбирал получившийся query string:
HttpUriRequest currentReq = (HttpUriRequest) context.getAttribute(ExecutionContext.HTTP_REQUEST);
                HttpHost currentHost = (HttpHost)  context.getAttribute(ExecutionContext.HTTP_TARGET_HOST);
                String currentUrl = (currentReq.getURI().isAbsolute()) ? currentReq.getURI().toString() : (currentHost.toURI() + currentReq.getURI());
                currentUrl = currentUrl.replace("#", "?");
                Uri uri=Uri.parse(currentUrl);
                String access_token = uri.getQueryParameter("access_token");
                long user_id = Long.valueOf(uri.getQueryParameter("user_id"));

Опять же, так делается в Android - в чистой яве для этого просто не хватит классов.
Но вообще, это очень некрасиво, и лучше всего, конечно, выпрашивать прямую авторизацию.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
DR_Demons
@DR_Demons
jawakharlal
@jawakharlal
думаю те на ресурсах вроде stackoverflow.com надо искать
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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