SolidlSnake
@SolidlSnake
Ваш дружелюбный сосед

Логин в ВК с помощью Kotlin/Java?

В этом посте (который к сожалению аж 2012 года) у автора получилось написать функцию, которая сама получала Access Token.
Сейчас необходимо сделать тоже самое.
Функция на Kotlin которая имеется (полный аналог из поста):
//Здесь добавлено, дабы не было ошибки при работе с cookie
    val globalConfig = RequestConfig.custom().setCookieSpec(CookieSpecs.STANDARD).build()
    val httpClient = HttpClientBuilder.create().setDefaultRequestConfig(globalConfig).build()
    var post = HttpPost(
                    "http://oauth.vk.com/authorize?" +
                    "client_id=" + id +
                    "&scope=" + "wall,photos" +
                    "&redirect_uri=" + "https://oauth.vk.com/blank.html" +
                    "&display=" + "popup" +
                    "&response_type=" + "token"
    )
    var response = httpClient.execute(post)
    post.abort()

// Тут ошибка NullPointerException
    var headerLocation = response.getFirstHeader("location").value
    val uri = URI(headerLocation)

    val ip_h = uri.query.split("&")[2].split("=")[1]
    val to_h = uri.query.split("&")[4].split("=")[1]

    post = HttpPost(
                    "https://login.vk.com/?act=login&soft=1"+
                    "&q=1"+
                    "&ip_h="+ip_h+
                    "&from_host=oauth.vk.com"+
                    "&to="+to_h+
                    "&expire=0"+
                    "&email="+ login +
                    "&pass="+ pass
    )
    response = httpClient.execute(post)
    post.abort()
    headerLocation = response.getFirstHeader("location").value

    post = HttpPost(headerLocation)
    response = httpClient.execute(post)
    post.abort()

    headerLocation = response.getFirstHeader("location").value

    httpClient.close()

    return headerLocation.split("#")[1].split("&")[0].split("=")[1]

Но проблема в том, что уже после первого post запроса в ответе не имеется header Location (место ошибки отметил комментарием), хотя если скопировать строку и вставить в браузер все впорядке.
Можно ли как то обойти это дело?
  • Вопрос задан
  • 1359 просмотров
Пригласить эксперта
Ответы на вопрос 1
jaxtr
@jaxtr
JavaEE/Spring-разработчик
Есть уже готовые решения вроде Spring Social VKontakte.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
16 апр. 2024, в 08:46
500 руб./за проект
16 апр. 2024, в 06:30
30000 руб./за проект
16 апр. 2024, в 05:27
500 руб./за проект