LINUX.ORG.RU

Авторизация во вконтактике без участия пользователя

 , , ,


0

1
WebDriver driver = new HtmlUnitDriver(true); // (true) включает js
   driver.get(url);
    List<WebElement> edits = driver.findElements(By.className("form_input")); // поиск полей для заполнения логина и пароля
    edits.get(0).click(); // фокус на поле логина
    edits.get(0).sendKeys(login); // ввод логина
    edits.get(1).click(); // то же самое с паролем
    edits.get(1).sendKeys(password);
    driver.findElement(By.id("install_allow")).click(); // клик по кнопке подтверждения
    // происходит редирект сюда http://pastebin.com/wATWDWi3
    // страница с подтверждением прав приложения
    driver.findElement(By.id("install_allow")).click(); // клик по кнопке, подтверждающей права приложения. Игнорируется, хоть ты до посинения кликай

Интересно, что если не включать js, то вместо страницы с подтверждением прав приложения происходит редирект сразу на выбранную в get запросе страницу с добавлением токена в url, т.е. пропускается этап подтверждения прав. Было бы наплевать, но в таком случае приложение не имеет прав вообще ни на что — надо как-то исправить.

UPD: во время авторизации пользователя дергать нельзя, все должно делаться автоматически, т.е. вариант с открытием окна браузера, который продвигает вконтактик, мне не подходит.

★★★★★

Последнее исправление: cetjs2 (всего исправлений: 2)
Ответ на: комментарий от kovrik

И все делается 1 запросом, никакие формы заполнять не надо

kovrik ★★★★★
()
Ответ на: комментарий от kovrik

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

f1xmAn ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.