Описание создания авторизации Oauth vk.com api
Файл index.php
<? require_once("config.php");
if(isset($_SESSION['access_token'])) {
$uid = $_SESSION['user_id'];
// получим профиль пользователя
$resp = file_get_contents('https://api.vkontakte.ru/method/getProfiles?uids='.$uid.'&fields=uid,first_name,last_name,nickname,photo_big,photo_rec,sex&access_token='.$_SESSION['access_token']);
$data = json_decode($resp, true);
print_r($data);
} else {
require_once("redirect.php");
}?>
Файл config.php
<?Файл login.php
// id приложения
define("CLIENT_ID", "ID_ПРИЛОЖЕНИЯ");
// защищенный ключ
define("SECRET", "СЕКРЕТНЫЙ_КЛЮЧ");
// куда перенаправим пользователя после авторизации
define("OAUTH_CALLBACK", "callback.php");
// настройки доступа
define("SCOPE", "groups,friends");
// путь к папке со скриптами
define("PATH", "http://ДОМЕН/ПУТЬ/ДО/СКРИТПОВ/");
define("GID", "ID_ПРИЛОЖЕНИЯ");
// включим сессию
session_start();
?>
<?require_once("config.php");Файл redirect.php
$link = 'http://api.vk.com/oauth/authorize?client_id='.CLIENT_ID.'&redirect_uri='.PATH.OAUTH_CALLBACK.'&display=popup&scope='.SCOPE.'&response_type=code';
?>
<button onclick="location.href='<? echo $link ?>';" style="padding:10px; font-size:14pt;">Войти ВКонтакте</button>
<br />
<?Файл callback.php
require_once("config.php");
//перенаправляем на авторизацию
//header('Location: http://api.vk.com/oauth/authorize?clien ... type=code');
header('Location: '.PATH.'login.php');
?>
<?
require_once("config.php");
// получили параметр code
if($_REQUEST['code']) {
// получаем access_token
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_USERAGENT, "Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.3521/886; U; en) Presto/2.4.15");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_URL, "https://oauth.vk.com/access_token?client_id=".CLIENT_ID."&code=".$_REQUEST['code']."&client_secret=".SECRET."&redirect_uri=".PATH."callback.php");
$answer = json_decode(curl_exec($ch), true);
if (curl_errno($ch) != 0)
die('curl error:' . curl_error($ch));
$text_answer = print_r($answer, true);
/*if (isset($answer['error_description']))
echo '<p style="color:red;display:inline;">' . $answer['error'] . ': ' . $answer['error_description'] . '</p><br>';
else
echo '<p style="color:green;display:inline;">token: ' . $answer['access_token'] . '</p><br>';
echo "Debug:<br><textarea cols=100 rows=10>" . $text_answer . "</textarea>";
*/
if($answer['access_token']){
// запишем данные в сессию
$_SESSION['access_token'] = $answer['access_token'];
$_SESSION['user_id'] = $answer['user_id'];
// переадресуем пользователя на нужную страницу
header('Location: '.PATH.'index.php');
exit();
}
}
?>