Не работает авотризация oauth. В чем проблема?

Создание Desktop-приложений, виджеты ВКонтакте для сайтов и публичных страниц, OAuth 2.0, Open API, Standalone
ansoffov
Сообщения: 7
Зарегистрирован: 28 янв 2012, 15:50

Не работает авотризация oauth. В чем проблема?

Сообщение ansoffov »

Пример взял на этом форуме, немного переделал его, сначала все работало замечательно, потом работать перестало.
Зарегистрировал новый сайт, создал standalone приложение вконтакте

На свой сайт выкладываю два файла

config.php

Код: Выделить всё

 <?/* http://flapps.ru/forum/ - форум о создании приложений */ // id приложенияdefine("CLIENT_ID", "XXXXXXXX");// защищенный ключdefine("SECRET", "XXXXXXXXXXXXXX");// куда перенаправим пользователя после авторизацииdefine("OAUTH_CALLBACK", "index.php");// настройки доступаdefine("SCOPE", "friends,photos,wall");// путь к папке со скриптамиdefine("PATH", "http://domain.ru"); // включим сессиюsession_start();?> 
index.php

Код: Выделить всё

 <?require_once("config.php"); if(isset($_GET['logout'])){    unset($_SESSION['access_token']);    unset($_SESSION['user_id']);} //получили параметр codeif($_REQUEST['code']) {    $resp = file_get_contents('https://api.vk.com/oauth/access_token?client_id='.CLIENT_ID.'&code='.$_REQUEST['code'].'&client_secret='.SECRET);    $data = json_decode($resp, true);     if($data['access_token']){        // запишем данные в сессию        $_SESSION['access_token'] = $data['access_token'];        $_SESSION['user_id'] = $data['user_id'];        }} //Если доступ есть, получаем необходимые данныеif(isset($_SESSION['access_token'])) {     //получим профиль пользователя    $uid = $_SESSION['user_id'];    $resp = file_get_contents('https://api.vk.com/method/getProfiles?uids='.$uid.'&fields=photo_big&access_token='.$_SESSION['access_token']);    $data = json_decode($resp, true);        //Если пользователь существует, обновляем данные, если нет добавляем нового} ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Документ без названия</title></head> <body> <? if(isset($_SESSION['access_token'])) {     //print_r($data); // расскоментировать эту строчку, чтобы увидеть ответ сервера    // вывеедм полученные данные        echo 'Имя '.$data[response][0][first_name];    echo '<br />Фамилия '.$data[response][0][last_name];    echo '<br /><img src="'.$data[response][0][photo_big].'" />';            echo '<div align="left">Id'.$uid.'</div>';    echo '<div align="left"><a href="index.php?logout" />Выход</a></div>';       }else { //Выдаем ссылку на авторизацию $link = "'http://api.vk.com/oauth/authorize?client_id=".CLIENT_ID."&redirect_uri=".PATH.OAUTH_CALLBACK."&display=popup&scope=".SCOPE."&response_type=code';";echo '<button onclick="location.href='.$link.'">Войти ВКонтакте</button>';     } ?></body></html> 
Сервер возвращает ошибку
[17-Sep-2012 16:13:01] PHP Warning: file_get_contents(https://api.vk.com/oauth/access_token?c ... XXXXXXXXXX) [<a href='function.file-get-contents'>function.file-get-contents</a>]: failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request
in public_html/index.php on line 13

Подскажите куда смотреть?
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Не работает авотризация oauth. В чем проблема?

Сообщение Александр »

ansoffov
На сервере разрешено использовать file_get_contents ?
Что если попробовать перейти по этой ссылке прямо из браузера?
ansoffov
Сообщения: 7
Зарегистрирован: 28 янв 2012, 15:50

Re: Не работает авотризация oauth. В чем проблема?

Сообщение ansoffov »

{"error":"invalid_client","error_description":"client_secret is undefined"}

Вот такая вот ошибка, 1000 раз проверил секретный код. Копирую прямо из приложения вконтакте...

$_REQUEST['code'] - выдается всегда новый, как и должно быть
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Не работает авотризация oauth. В чем проблема?

Сообщение Александр »

ansoffov
Если в этом коде ничего кроме данных приложения не менять, то все работает? http://flapps.ru/forum/topic3931.html
ansoffov
Сообщения: 7
Зарегистрирован: 28 янв 2012, 15:50

Re: Не работает авотризация oauth. В чем проблема?

Сообщение ansoffov »

Да, совсем забыл сказать. Пробовал этот код, изменял только данные приложения, также не работает. Проверял на двух хостингах.

Ошибка та же самая. (((
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Не работает авотризация oauth. В чем проблема?

Сообщение Александр »

ansoffov писал(а):Проверял на двух хостингах.
Хотя бы на одном из них разрешено использовать file_get_contents ? Если бесплатные, то скорее всего не разрешено.
ansoffov
Сообщения: 7
Зарегистрирован: 28 янв 2012, 15:50

Re: Не работает авотризация oauth. В чем проблема?

Сообщение ansoffov »

Так, на сколько я понимаю, данная ошибка:

{"error":"invalid_client","error_description":"client_secret is undefined"}

говорит о том что дело не в этой функции ?
Проверял и на платном хостинге, в техподдержке посоветовали использовать curl
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Не работает авотризация oauth. В чем проблема?

Сообщение Александр »

ansoffov писал(а):Сервер возвращает ошибку
[17-Sep-2012 16:13:01] PHP Warning: file_get_contents(https://api.vk.com/oauth/access_token?c ... XXXXXXXXXX) [<a href='function.file-get-contents'>function.file-get-contents</a>]: failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request
in public_html/index.php on line 13
вот такую ошибку, как я понял, возвращает сервер.
ansoffov писал(а):{"error":"invalid_client","error_description":"client_secret is undefined"}
эту ошибку видно, если перейти по ссылке прямо в браузере. Не так?

Код: Выделить всё

echo file_get_contents('http://flapps.ru');
Работает?
ansoffov писал(а):в техподдержке посоветовали использовать curl
Если это решит проблему, то можно использовать curl.
ansoffov
Сообщения: 7
Зарегистрирован: 28 янв 2012, 15:50

Re: Не работает авотризация oauth. В чем проблема?

Сообщение ansoffov »

В том то и дело что важно не использовать cURL
Насчет ошибок вы все правильно поняли

Код: Выделить всё

echo file_get_contents('http://flapps.ru'); 
Прекрасно работает.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Не работает авотризация oauth. В чем проблема?

Сообщение Александр »

ansoffov
А из этого что-нибудь возвращает ответ от сервера api?

Код: Выделить всё

echo file_get_contents('https://api.vk.com/method/likes.getList?type=sitepage&owner_id=1942958&page_url=http://flapps.ru/vk-gifts/gift485'); echo file_get_contents('http://api.vk.com/method/likes.getList?type=sitepage&owner_id=1942958&page_url=http://flapps.ru/vk-gifts/gift485'); echo file_get_contents('https://api.vk.com/method/likes.getList');
Ответить