Что нового

[Сеть, интернет] Нажать на кнопку "Разрешить" (приложение VK)

Сообщения
36
Репутация
-1
Помогите нажать на "Разрешить" для подтверждения доступа VK приложения.
https://oauth.vk.com/authorize?client_id=4364105&scope=groups,offline,photos,friends,video&redirect_uri=http://bakalovae.ucoz.ru/index.html?/vklogin/&response_type=code (нужно быть авторизованным)
Такой код не работает:
Код:
#include <IE.au3>
$otr = _IETagNameGetCollection($oIE, "tr")
For $otr In $otrs
   $otd = _IETagNameGetCollection($oIE, "td")
   For $otd In $otds
   If $otd.ClassName == 'bottom_buttons' Then
        $oLink = _IETagNameGetCollection($otd, "button")
        _IEAction($oLink, 'click')
        _IELoadWait($oIE)
        ExitLoop
	 EndIf
	 Next
Next

Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>ВКонтакте | Разрешение доступа</title>
<link rel="stylesheet" type="text/css" href="https://vk.com/css/al/common.css?452" />
<!--[if lte IE 6]><style type="text/css" media="screen">/* <![CDATA[ */ @import url(https://vk.com/css/al/ie6.css?26); /* ]]> */</style><![endif]-->
<!--[if IE 7]><style type="text/css" media="screen">/* <![CDATA[ */ @import url(https://vk.com/css/al/ie7.css?18); /* ]]> */</style><![endif]-->
<link type="text/css" rel="stylesheet" href="https://vk.com/css/api/oauth_popup.css?28"></link>
<script type="text/javascript" language="javascript" src="https://vk.com/js/api/common_light.js?1"></script>
<script type="text/javascript" language="javascript">
// <![CDATA[
  function allow() {
    var addr = '';
    if (isChecked(ge('allow_notifications'))) {
      addr = '&notify=1';
    }
    if (isChecked(ge('denied_email'))) {
      addr = '&email_denied=1';
    }
    location.href = "https://login.vk.com/?act=grant_access&client_id=4364105&settings=327702&redirect_uri=http%3A%2F%2Fbakalovae.ucoz.ru%2Findex.html%3F%2Fvklogin%2F&response_type=code&direct_hash=272633bfcc308aee11&token_type=0&v=&state=&display=page&ip_h=766a8ca12eec1a5ff5&hash=1474c8eb4b669edc66&https=1"+addr;
    return false;
  }

  function cancel() {
    location.href = "https://login.vk.com/?act=grant_access&client_id=4364105&settings=327702&redirect_uri=http%3A%2F%2Fbakalovae.ucoz.ru%2Findex.html%3F%2Fvklogin%2F&response_type=code&direct_hash=272633bfcc308aee11&token_type=0&v=&state=&display=page&ip_h=766a8ca12eec1a5ff5&hash=1474c8eb4b669edc66&https=1&cancel=1";
    return false;
  }

  function login() {
    ge('login_submit').submit();
  }
  function doResize(onResize) {
    var box = ge('box_cont');
    if (onResize) {
      setTimeout(function() {
        doResize()
      }, 100);
    }

    var wndH = window.outerHeight - window.innerHeight;
    wndH = (!wndH || wndH < 0) ? 50 : wndH;
    var wndW = window.outerWidth - window.innerWidth;
    wndW = (!wndW || wndW < 0) ? 50 : wndW;

    if (document.body.className.indexOf('oauth_page') != -1) {
      ge('sub_cont').style.paddingTop =  Math.floor((document.body.clientHeight - ge('container').offsetHeight - 50) / 2)+'px';
    } else if (!onResize) {
      var boxH = box.offsetHeight;
      var ctrlH = 178 + wndH;
      var ctrlW = 605 + (wndW || 15);

      window.resizeTo(ctrlW, boxH + ctrlH);
      window.moveTo(Math.floor((screen.width - ctrlW) / 2), Math.floor((screen.height - boxH - ctrlH) / 2));
    }
  }
  function toggleEmailPrivacy() {
    checkbox('denied_email');
    if (!isChecked('denied_email')) {
      hide('denied_email');
      show('allowed_email');
    } else {
      hide('allowed_email');
      show('denied_email');
    }
  }

  if (parent && parent != window) {
    location.href = "https://oauth.vk.com/blank.html";
  }
  
// ]]>
</script>
</head>
</html>
<body onload="doResize();" class="VK oauth_page">
<script>
if (window.devicePixelRatio >= 2) {
  document.body.className += ' is_2x';
}
</script>
<div id="sub_cont">
<table id="container" class="container" cellspacing="0" cellpadding="0"><tr><td class="head">
  <a href="https://vk.com" target="_blank" class="logo"></a><div class="auth_items"><div class="fl_r"><a href="http://vk.com/id17937236"><img class="head_photo" src="https://pp.vk.me/c208/v208061/11c0/1.jpg"></a><a class="head_name" target="_blank" href="http://vk.com/id17967061">Надежда Мостович</a>   <a href="/logout?hash=6b78184ec4c3add33d&success_url=Y2xpZW50X2lkPTQzNjQxMDUmcmVkaXJlY3RfdXJpPWh0dHAlM0ElMkYlMkZiYWthbG92YWUudWNvei5ydSUyRmluZGV4Lmh0bWwlM0YlMkZ2a2xvZ2luJTJGJnJlc3BvbnNlX3R5cGU9Y29kZSZzY29wZT0zMjc3MDImdj0mc3RhdGU9JmRpc3BsYXk9cGFnZQ--&success_hash=54fdfa121c7a3ad1b5">выйти</a></div></div>
  </td></tr><tr>
 <td>
 <div id="box_cont">
  <div id="box" class="box">
    <div class="info permissions_info">
      
      <div class="app_info">
        <img src="https://vk.com/images/dquestion_d.png" width="75" height="75" />
      </div>
      
      <div class="items">
        <div class="grant_access_title">Приложение <b><a href="http://vk.com/app4364105" target="_blank">Спорт</a></b> запрашивает доступ к Вашему аккаунту.</div>
        <div class="apps_access_item clear_fix"><div class="apps_access_icon apps_access_profile"></div><div class="fl_l apps_access_item_info"><b>Доступ к общей информации</b>Приложению будут доступны Ваши личные данные</div></div><div class="apps_access_item clear_fix"><div class="apps_access_icon apps_access_friends"></div><div class="fl_l apps_access_item_info"><b>Доступ к списку Ваших друзей</b>Приложению будет доступен список Ваших друзей</div></div><div class="apps_access_item clear_fix"><div class="apps_access_icon apps_access_photos"></div><div class="fl_l apps_access_item_info"><b>Доступ к фотографиям</b>Приложению будут доступны Ваши фотографии</div></div><div class="apps_access_item clear_fix"><div class="apps_access_icon apps_access_media"></div><div class="fl_l apps_access_item_info"><b>Доступ к видеозаписям</b>Приложению будут доступны Ваши видеозаписи</div></div><div class="apps_access_item clear_fix"><div class="apps_access_icon apps_access_offline"></div><div class="fl_l apps_access_item_info"><b>Доступ в любое время</b>Приложение получит доступ к Вашим данным в любое время, даже когда Вы будете не в сети</div></div><div class="apps_access_item clear_fix"><div class="apps_access_icon apps_access_groups"></div><div class="fl_l apps_access_item_info"><b>Доступ к группам</b>Приложение получит доступ к Вашим группам</div></div>
      </div>
    </div>
  </div>
 </div>
</td></tr><tr><td class="bottom_buttons">
  <a class="fl_r" id="install_cancel" onclick="return cancel();">Отмена</a>
  <button class="flat_button button_big_width fl_r" id="install_allow" onclick="return allow();">Разрешить</button>
</td></tr></table>
</div>
</body>
</html>
Спасибо.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: [Сеть, интернет] Нажать на кнопку (приложение VK)

fyviffitoffo [?]
Такой код не работает:
Я бы очень удивился, если бы он вдруг начал работать. ;D
Попробуйте сделать так.
Код:
;~ ...
$oBtn = _IEGetObjById($oIE, 'install_allow')
_IEAction($oBtn, 'click')
_IELoadWait($oIE)
;~ ...
 

Z_Lenar

Продвинутый
Сообщения
209
Репутация
52
fyviffitoffo
Код:
$oIE.document.parentwindow.eval('allow()')
_IELoadWait($oIE)
 
Автор
fyviffitoffo
Сообщения
36
Репутация
-1
madmasles, вы пробовали непосредственно на самом сайте?
Z_Lenar нет, не помогло. Есть ли перечень или справка об использовании Javascript в autoit?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
fyviffitoffo [?]
вы пробовали непосредственно на самом сайте?
На сайте нет, на Вашем HTML-коде все работает.
Что напишет в консоли этот код?
Код:
#include <IE.au3>

Local $oIE, $oBtn, $oNodes, $iErr = 1, $sUrl = 'Ваша ссылка';!поменяйте!

Do
	$oIE = _IECreate($sUrl)
	If @error Then ExitLoop
	$oBtn = _IEGetObjById($oIE, 'install_allow')
	If @error Then ExitLoop
	$oNodes = $oBtn.Attributes
	For $oNode In $oNodes
		$sValue = $oNode.nodeValue
		If Not $sValue Then ContinueLoop
		ConsoleWrite($oNode.name & ' = ' & $sValue & @LF)
	Next
	$iErr = 0
Until 1
ConsoleWrite('---' & @LF)
ConsoleWrite('$iErr :' & $iErr & @LF)
 
Автор
fyviffitoffo
Сообщения
36
Репутация
-1
почему то я всегда ищу проблему не там где надо. :smile: в связи с специфическими веб-страницами не нужно было ждать загрузки предыдущей страницы, потому что тогда не производился выход из цикла. А так самый простой код, как и следовало ожидать, работает. спасибо.
 
Верх