Как убрать запрос email в iframe приложении vk?

Всем привет!
Никак не могу получить одобрение приложения iframe в vk. Модераторы пишут, что "необходимо убрать запрос e-mail в настройках", однако совершенно непонятно о каких настройках идет речь. Код уже весь перерыли, несколько раз убедились, что строк типа scope=email нигде нету. Не может же email как-то по-другому запрашиваться? Вот, взгляните, пожалуйста на код:

<a href="'.$CONF['url'].'/index.php?vk=true&state='.$_SESSION['state'].'">Войти в приложение</a>

<?
	if(isset($_GET['vk']) && $settings['vkappid']) {
		$reg = new register();
		$reg->db = $db;
		$reg->url = $CONF['url'];
		$reg->username = $_POST['username'];
		$reg->password = $_POST['password'];
		$reg->email = $_POST['email'];
		$reg->captcha = $_POST['captcha'];
		$reg->captcha_on = $settings['captcha'];
		$reg->message_privacy = $settings['mprivacy'];
		$reg->like_notification = $settings['notificationl'];
		$reg->comment_notification = $settings['notificationc'];
		$reg->shared_notification = $settings['notifications'];
		$reg->chat_notification = $settings['notificationd'];
		$reg->friend_notification = $settings['notificationf'];
		$reg->verified = $settings['verified'];
		$reg->email_like = $settings['email_like'];
		$reg->email_comment = $settings['email_comment'];
		$reg->email_new_friend = $settings['email_new_friend'];
		$reg->sound_new_notification = $settings['sound_new_notification'];
		$reg->sound_new_chat = $settings['sound_new_chat'];
		$reg->vkapp = $settings['vkapp'];
		$reg->vkappid = $settings['vkappid'];
		$reg->vkappsecret = $settings['vkappsecret'];
		$reg->vkcode = $_GET['code'];
		$reg->vkstate = $_GET['state'];
		$TMPL['registerMsg'] = $reg->vk();

		header("Location: ".$CONF['url']."/index.php?a=profile&u=".$reg->username);
	}
	
	
	function vk() {
		if($this->vkapp) {
			
			$api_id = *******; // здесь реальный id приложения
			$secret_key = '**************'; // здесь реальный защищенный ключ
  
	        $auth_key   = $_SESSION['vk_auth_key'];
	        $viewer_id  = $_SESSION['vk_viewer_id'];
	        if(md5($api_id."_".$viewer_id."_".$secret_key)!=$auth_key) exit($error_text);
			
			
			// Get user's ID + add 'id' line before his ID
			$generator = $_SESSION['vk_viewer_id'];
			$user->screen_name = 'id'.$generator;
			
			//APIServerPHPClass initialization: get user's first_name &  last_name
			require 'vkapi.class.php';
			 
			$VK = new vkapi($api_id, $secret_key);
			$resp = $VK->api('users.get', array('uids'=>$generator));
			
			$polar_first_name = $resp['response'][0]['first_name'];
			$polar_last_name = $resp['response'][0]['last_name'];
			
			
			if($_SESSION['state'] == null || ($_SESSION['state'] != $this->vkstate)) {
				header("Location: ".$this->url);
			}
			
			if(!empty($user->screen_name)) {
				$this->screen_name = $user->screen_name;
				$this->first_name = $polar_first_name;
				$this->last_name = $polar_last_name;
				
				$checkScreenName = $this->verify_if_screenname_exists();
				// If user already exist
				
				if($checkScreenName) {
					// Set sessions and log-in
					$_SESSION['username'] = $checkScreenName['username'];
					$_SESSION['password'] = $checkScreenName['password'];

					// Redirect user
					header("Location: ".$this->url);
				} else {
					$this->username = $this->screen_name;
					$this->password = $this->generatePassword(8);
					$this->query();
					
					$_SESSION['username'] = $this->username;
					$_SESSION['password'] = md5($this->password);
					
					return 1;
				}
			}
		}
	}
?>


Вот так выглядит html-код страницы:

<!DOCTYPE html>
<html lang="ru">
<head>
<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript" src="/js/jquery.timeago.js"></script>
<script type="text/javascript" src="/js/functions.js"></script>
<script type="text/javascript" src="https://vkontakte.ru/js/api/xd_connection.js?2"></script>
<script type="text/javascript">
	function postOnVkWall() {
		VK.api('wall.post',{message: 'Текст_сообщения', attachments: 'vkapp/index.php?a=welcome'},function(data) { 
			if (data.response) { 
				alert('Запись опубликована на Вашей стене!');
				document.location.reload(); 
	  		}
	  		if (data.error) { 
				alert('К сожалению, при публикации произошла ошибка.');
				document.location.reload(); 
	  		}
		});
	}
</script>
<link rel="stylesheet" href="/js/jquery.fancybox.css?v=2.1.5" type="text/css" media="screen" />
<script type="text/javascript" src="/js/jquery.fancybox.pack.js?v=2.1.5"></script>
<script>
$(document).ready(function() {
	$(".fancybox").fancybox({
		openEffect	: 'none',
		closeEffect	: 'none'
	});
});
</script>
</head>
<body>
<div style="height:auto !important; min-height:730px;" id="page">
<div id="loading-bar"><dd></dd><dt></dt></div>
<div class="topbar">
	<div class="header">
		<a href="/vkapp/index.php?a=welcome" rel="loadpage"><div class="menu_btn logo-container"><div class="logo"></div></div></a>
		<div class="search-input"><input type="text" id="search" placeholder="Поиск людей, #хэштегов, !групп" autocomplete="off" value=""></div>
		<a href="/vkapp/index.php?a=welcome" rel="loadpage" title="Присоединиться"><div class="topbar-button">Присоединиться</div></a>
	</div>
	<div class="search-container"></div>
</div>
<div id="content">
	
<div class="row-welcome content-welcome">
	<div class="row-body">
		<div class="welcome-inner">
			<div class="welcome-message">
				<div class="welcome-title">
					Title
				</div>
				<div class="welcome-desc">
					Description
				</div>
				<div class="welcome-about">
					<!--делитесь информацией-->
				</div>
			</div>
			<div class="welcome-inputs">
				<br />
				<form action="" method="POST" autocomplete="off">
					<div class="facebook-button"><a href="/vkapp/index.php?vk=true&state=dbb8379b8bbb22b1c8d25ccd9ec42426" class="change_loading facebook-button">Войти в приложение</a></div>
				</form>
			</div>
		</div>
	</div>
</div>
<div class="welcome-full welcome-white">
	<div class="welcome-inner">
		<div class="welcome-row-title">Title</div>
		<div style="width:100%; padding-bottom:22px; font-size: 16px; color: #999;" class="welcome-user">Description</div>
	</div>
</div>
<div class="welcome-full">
</div>

</div>
<div class="footer">
	<div class="footer-container">
		
		
	</div>
</div>

</div>
</body>
</html>


Т.к. это не сайт, а iframe приложение, то vk не разрешает запрашивать access_token, логин отдается напрямую через GET, вот так мы его получаем:

//Polar: get VK iframe viewer_id
if(!isset($_SESSION['vk_auth_key']) || !isset($_SESSION['vk_viewer_id'])) {
	$_SESSION['vk_auth_key'] = $_GET['auth_key'];
	$_SESSION['vk_viewer_id'] = $_GET['viewer_id'];
	
	// Check auth_key & viewer_id
	$api_id = ********; // id приложения
	$secret_key = '*************'; // защищенный ключ
    $viewer_id = $_GET['viewer_id'];
    $auth_key = $_GET['auth_key'];
    
	if(md5($api_id."_".$viewer_id."_".$secret_key)!=$auth_key) exit('Key incorrect');
}
  • Вопрос задан
  • 328 просмотров
Пригласить эксперта
Ответы на вопрос 1
@mletov
Это серверная часть на php, а как выглядит сама форма настроек в html?
Ответ написан
Ваш ответ на вопрос

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

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