Всем привет! Нашел в сети такой класс авторизации в одноклассниках:
<?php
class Utils
{
public static function redirect($uri = '')
{
header("HTTP/1.1 301 Moved Permanently");
header("Location: ".$uri, TRUE, 302);
exit;
}
}
/**
* @url http://ok.ru/dk?st.cmd=appEdit&st._aid=Apps_Info_MyDev_AddApp добавить приложение
*/
class OAuthOK {
// ЗДЕСЬ ДАННЫЕ Я ЗАМЕНИЛ
const APP_ID = 'id приложения; //ID приложения
const APP_PUBLIC = 'публичный ключ'; //Публичный ключ
const APP_SECRET = 'защищённый ключ'; //Защищенный ключ
const URL_CALLBACK = 'здесь возврат'; //URL, на который произойдет перенаправление после авторизации
const URL_AUTHORIZE = 'http://www.odnoklassniki.ru/oauth/authorize';
const URL_GET_TOKEN = 'http://api.odnoklassniki.ru/oauth/token.do';
const URL_ACCESS_TOKEN = 'http://api.odnoklassniki.ru/fb.do';
private static $token;
public static $userId;
public static $userData;
/**
* @url http://apiok.ru/wiki/pages/viewpage.action?pageId=81822109
*/
public static function goToAuth()
{
Utils::redirect(self::URL_AUTHORIZE .
'?client_id=' . self::APP_ID .
'&response_type=code' .
'&redirect_uri=' . urlencode(self::URL_CALLBACK));
}
public static function getToken($code)
{
$data = array(
'code' => trim($code),
'redirect_uri' => self::URL_CALLBACK,
'client_id' => self::APP_ID,
'client_secret' => self::APP_SECRET,
'grant_type' => 'authorization_code'
);
$opts = array('http' =>
array(
'method' => 'POST',
'header' =>"Content-type: application/x-www-form-urlencoded\r\n".
"Accept: */*\r\n",
'content' => http_build_query($data)
)
);
if (!($response = @file_get_contents(self::URL_GET_TOKEN, false, stream_context_create($opts)))) {
return false;
}
$result = json_decode($response);
if (empty($result->access_token)) {
return false;
}
self::$token = $result->access_token;
return true;
}
/**
* Если данных недостаточно, то посмотрите что можно ещё запросить по этой ссылке
* @url http://apiok.ru/wiki/display/api/users.getCurrentUser+ru
*/
public static function getUser() {
if (!self::$token) {
return false;
}
$url = self::URL_ACCESS_TOKEN .
'?access_token=' . self::$token .
'&method=users.getCurrentUser' .
'&application_key=' . self::APP_PUBLIC .
'&sig=' . md5('application_key=' . self::APP_PUBLIC . 'method=users.getCurrentUser' . md5(self::$token . self::APP_SECRET));
if (!($response = @file_get_contents($url))) {
return false;
}
$user = json_decode($response);
if (empty($user)) {
return false;
}
self::$userId = $user->uid;
return self::$userData = $user;
}
}
?>
Теперь делаю запрос:
OAuthOK::goToAuth();
В $_GET должен вернуться code но его там нет. Что делю не так?