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

Статус
В этой теме нельзя размещать новые ответы.

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)

Вначале внесите свой сайт в базу вконтакта - Для просмотра ссылки Войди или Зарегистрируйся
Отлавливаем параметры обычными гет запросами. Обращение к каждому с параметров.
Итог - переменные $p1, $p2, $p3, $p4, $p5

С ними делайте всечтоугодно, вносите в базу данных, в текстовик аля dat, выводите на экран =)
От вашей фантазии =)
 
А можно ли как-нибудь сделать регистрацию без внесения своего сайта в базу контакта?
 
Бывает так, что авторизация должна проходить не на клиента, а на сервер. ниже приведён скрипт, как это реализовать.

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($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
        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($curl, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
            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;                 

}
?>
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху