ВК регистрация для сайта либо VK API

Тема в разделе "PHP", создана пользователем startus, 8 авг 2013.

Статус темы:
Закрыта.
Модераторы: latteo
  1. startus

    startus Создатель

    Регистр.:
    7 окт 2011
    Сообщения:
    39
    Симпатии:
    5
    Делал вот такую бадягу заказчику.
    Опишу ее здесь, многим пригодиться, ибо популярность регистраций через соц-сети растет)
    Итак:
    Сам код:

    Код:
    <html>
    <head>
    <script type="text/javascript" src="//vk.com/js/api/openapi.js?82"></script>
     
    <script type="text/javascript">
      VK.init({apiId: 3492231});
    </script>
    </head>
    <body>
    <?php
    $p1 = $_GET['first_name'];
    $p2 = $_GET['last_name'];
    $p3 = $_GET['uid'];
    $p4 = $_GET['photo_rec'];
    $p5 = $_GET['hash'];
    if (!empty($p1)){
    echo $p3.' '.$p1.' '.$p2.' '.$p5;
    echo '<br><img src='.$p4.'>';
    };
    ?>
    <div id="vk_auth"></div>
    <script type="text/javascript">
    VK.Widgets.Auth("vk_auth", {width: "200px", authUrl: '/vkapi.php?o=-1&p=Auth'});
    </script>
    </body>
    </html>
    $p1 = $_GET['first_name']; - Имя
    $p2 = $_GET['last_name']; - Фамилия
    $p3 = $_GET['uid']; - Айди
    $p4 = $_GET['photo_rec']; - Фото (мини), photo - для большой
    $p5 = $_GET['hash']; - Хеш аля md5(pp_id+user_id+secret_key)

    Вначале внесите свой сайт в базу вконтакта - http://vk.com//developers.php?o=-1&p=Auth
    Отлавливаем параметры обычными гет запросами. Обращение к каждому с параметров.
    Итог - переменные $p1, $p2, $p3, $p4, $p5

    С ними делайте всечтоугодно, вносите в базу данных, в текстовик аля dat, выводите на экран =)
    От вашей фантазии =)
     
    kaktyc1 нравится это.
  2. eg_sergey

    eg_sergey Создатель

    Регистр.:
    20 июл 2012
    Сообщения:
    37
    Симпатии:
    12
    А можно ли как-нибудь сделать регистрацию без внесения своего сайта в базу контакта?
     
  3. sofwar

    sofwar Создатель

    Регистр.:
    15 июл 2012
    Сообщения:
    10
    Симпатии:
    2
    Нет так как vk дает app_id для авторизации после заполнения формы http://vk.com//developers.php?o=-1&p=Auth
     
    eg_sergey нравится это.
  4. novell

    novell Писатель

    Регистр.:
    5 май 2013
    Сообщения:
    6
    Симпатии:
    1
    Бывает так, что авторизация должна проходить не на клиента, а на сервер. ниже приведён скрипт, как это реализовать.

    PHP:
    <?
    $ID ""//id приложения
    $SECRET ""//Ключ приложения
    $REDIRECT "http://test.ru/oauth.php?c=step2"//обработчик

    if (!isset($_GET['c'])) $c="";

    switch (
    $_GET['c']) {

    case 
    "":
            echo 
    "
            <script>
                function authVk(){
                    location.href = 'https://oauth.vk.com/authorize?client_id="
    .$ID."&scope=offline&redirect_uri=".$REDIRECT."&display=page&response_type=code';
                }
            </script>
            "
    ;
    break;

    case 
    "step2":
    if (
    $code $_GET['code']){
        if(
    $curl curl_init()){
            
    $St 'https://oauth.vk.com/access_token?client_id='.$ID.'&code='.$code.'&client_secret='.$SECRET.'&redirect_uri='.$REDIRECT;
            
    curl_setopt($curl,CURLOPT_URL,$St);
            
    curl_setopt($curlCURLOPT_SSL_VERIFYPEERfalse);
            
    curl_setopt($curlCURLOPT_SSL_VERIFYHOSTfalse);
            
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
         
            
    $stream curl_exec($curl);
            
    $data json_decode($stream);
         
            if(
    $data->access_token){
                
    $token $data->access_token;
                
    $userId $data->user_id;                     
            }
         
            if(
    $curl curl_init()){
                
    $url 'https://api.vk.com/method/users.get?uid='.$userId.'&fields=photo_big,sex,bdate,screen_name&access_token='.$token;
                
    curl_setopt($curl,CURLOPT_URL,$url);
                
    curl_setopt($curlCURLOPT_SSL_VERIFYPEERfalse);
                
    curl_setopt($curlCURLOPT_SSL_VERIFYHOSTfalse);
                
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
                
    $stream curl_exec($curl);
                
    $data1 json_decode($stream);
                
    $first_name $data1->response[0]->first_name;
                
    $last_name $data1->response[0]->last_name;   
                
    $photo $data1->response[0]->photo_big;       
                
    $sex $data1->response[0]->sex;             
                
    $bdate $data1->response[0]->bdate;         
                
    $login $data1->response[0]->screen_name;     
                
    $first_name iconv('UTF-8''windows-1251'$first_name);
                
    $last_name iconv('UTF-8''windows-1251'$last_name);
            }
        }

    break;                 

    }
    ?>
     
    Последнее редактирование: 13 сен 2013
    PhotoClubPro нравится это.
  5. omolota

    omolota Создатель

    Регистр.:
    8 май 2008
    Сообщения:
    10
    Симпатии:
    2
Статус темы:
Закрыта.