Ответы пользователя по тегу Java
  • Как пройти авторизацию VKontakte на Java?

    @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 - в чистой яве для этого просто не хватит классов.
    Но вообще, это очень некрасиво, и лучше всего, конечно, выпрашивать прямую авторизацию.
    Ответ написан
    Комментировать