require_once('../config.php'); require_once('lib/db.php'); require_once('lib/socnetauth.php'); session_start(); $SocAuth = new SocAuth(); if( !$SocAuth->get_config_param('socnetauth_status') ) { header("Location: ".$_SERVER['HTTP_REFERER']); exit(); } $IS_DEBUG = 0; if( !empty($_GET['first']) ) { $APPLICATION_ID = $SocAuth->get_config_param('socnetauth_odnoklassniki_application_id'); $REDIRECT_URI = 'http://'.$_SERVER['HTTP_HOST'].'/socnetauth/odnoklassniki.php'; $CURRENT_URI = $_SERVER['HTTP_REFERER']; $STATE = 'odnoklassniki_socnetauth_'.rand(); $SocAuth->setRecord($STATE, $CURRENT_URI); setcookie("od_state", $STATE); $url = 'http://www.odnoklassniki.ru/oauth/authorize?client_id='. $APPLICATION_ID.'&response_type=code&redirect_uri='.$REDIRECT_URI; header("Location: ".$url); } if( !empty( $_GET['code'] ) && !empty( $_COOKIE['od_state'] ) && $recordData = $SocAuth->getRecord( $_COOKIE['od_state'] ) ) { $CODE = $_GET['code']; $CURRENT_URI = $recordData['redirect']; $REDIRECT_URI = 'http://'.$_SERVER['HTTP_HOST'].'/socnetauth/odnoklassniki.php'; $CLIENT_ID = $SocAuth->get_config_param('socnetauth_odnoklassniki_application_id'); $CLIENT_SECRET = $SocAuth->get_config_param('socnetauth_odnoklassniki_secret_key'); $CLIENT_PUBLIC = $SocAuth->get_config_param('socnetauth_odnoklassniki_public_key'); //code={code}&redirect_uri=http://mysite.com/oklogin&grant_type=authorization_code&client_id={client_id}&client_secret={secret_key} $POSTURL = 'http://api.odnoklassniki.ru/oauth/token.do'; $POSTVARS = 'code='.$CODE.'&redirect_uri='.$REDIRECT_URI.'&grant_type=authorization_code'. '&client_id='.$CLIENT_ID.'&client_secret='.$CLIENT_SECRET; $ch = curl_init($POSTURL); curl_setopt($ch, CURLOPT_POST ,1); curl_setopt($ch, CURLOPT_POSTFIELDS , $POSTVARS); curl_setopt($ch, CURLOPT_FOLLOWLOCATION ,1); curl_setopt($ch, CURLOPT_HEADER ,0); // DO NOT RETURN HTTP HEADERS curl_setopt($ch, CURLOPT_RETURNTRANSFER ,1); // RETURN THE CONTENTS OF THE CALL $response = curl_exec($ch); curl_close($ch); if( $IS_DEBUG ) echo $response."