Авторизация вконтакте с автоматической отправкой формы

Рейтинг: 1Ответов: 0Опубликовано: 29.10.2014

В общем, есть сайт на вордпрессе. Необходимо грамотно вытащить имейл пользователя вконтакте и отправить форму с подпиской (используется плагин newsletter - https://wordpress.org/plugins/newsletter/).
Что код делает сейчас: при клике на ссылку открывается новое окно, перегружается активная страница, имейл адрес постится в инпуте. Все это дело отрабатывает очень долго.
Цель: при клике на ссылку быстро вытащить имейл, автоматически засабмитить форму и закрыть окно (если ссылка будет также открываться в новом окне). С PHP не очень дружу, поэтому приветствуются исчерпывающие ответы. Спасибо.

    <?php

    $client_id = '******'; // ID приложения
    $client_secret = '*********'; // Защищённый ключ
    $redirect_uri = '***********'; // Адрес сайта

    $url = 'http://oauth.vk.com/authorize';

    $params = array(
        'client_id'     => $client_id,
        'redirect_uri'  => $redirect_uri,
        'scope' => 'email',
        'response_type' => 'code'
    );

    echo $link = '<a  target="_blank"  href="' . $url . '?' . urldecode(http_build_query($params)) . '">Подписаться через вконтакте</a>';

    if (isset($_GET['code'])) {
    $result = false;
    $params = array(
        'client_id' => $client_id,
        'client_secret' => $client_secret,
        'code' => $_GET['code'],
        'redirect_uri' => $redirect_uri
    );

    $token = json_decode(file_get_contents('https://oauth.vk.com/access_token' . '?' . urldecode(http_build_query($params))), true);

    if (isset($token['access_token'])) {
        $params = array(
            'uids'         => $token['user_id'],
            'email'         => $token['email'],
            'fields'       => 'uid,email,first_name,last_name',
            'access_token' => $token['access_token']
        );

        $userInfo = json_decode(file_get_contents('https://api.vk.com/method/users.get' . '?' . urldecode(http_build_query($params))), true);
        if (isset($userInfo['response'][0]['uid'])) {
            $userInfo = $userInfo['response'][0];
            $result = true;
        }
    }

}?>

    <form  method="post" action="subscribe.php">       
      <input  class="input" placeholder="Ваш E-Mail" required="required" name="ne" value="<?php echo $token['email']?>"type="email" />            
      <input  class="button" type="submit" name="yt0" value="Подписаться" />
    </form>

Ответы

Ответов пока нет.