Xwab
Форумыnavigate_nextНебольшие вопросы по PHP/MySQL

Вопрос по file_get_contents и JSON
Сообщения
Jadson

Короче вот такое дело, как всегда в доке одноклассников ничего толкового нет, ответить на могут.
Формирую запрос, отправляю через file_get_contents
В ответ ничего не получаю, хотя если перейти по ссылке которую через file_get_contents передаю, там вот такое:
[php:1:896271a485]
[{"uid":"2395475566119017271","birthday":null,"first_name":"fName","last_name":"Lname","gender":"male","pic_1":"http://195.218.169.227:8088/img/photo1.gif"}]
[/php:1:896271a485]
Потом делал так:
[php:1:896271a485]
$page = file_get_contents($req);
$obj = json_decode($page,true);
$first_name = $obj[0]['first_name']; // Имя
$last_name = $obj[0]['last_name']; // Фамилия
$sex = $obj[0]['gender']; // Пол
[/php:1:896271a485]
Но по какой то причине через file_get_contents ничего нет, не пойму в чем проблема, уже не 1 день пытаюсь понять в чем дело.
Может тут кто знает что может быть не так?

21 Мар 2013, 16:25
u99

может потому что лучше не юзать file_get_contents?

21 Мар 2013, 16:27
Jadson

u99, может быть, мне портал дал данный код, сказали рабочий, но почему то не работает.
Мне главное данные получить которые я написал выше, а каким способом не важно.
Просто так же с другого портала получаю JSON через file_get_contents и там все нормально работает

21 Мар 2013, 16:40
san

*Голосом из Warcraft* "Нужно больше данных"
1. какой запрос? Какие заголовки отправляешь?
2. где запускается скрипт, окружение.

21 Мар 2013, 16:42
Jadson

Ну вот в чем дело, запуск идет с песочницы одноклассников. Я добавляю сайт в песочницу, ввожу ссылку на обработчик и через песочницу запускаю, вот такой код по словам одного из разработчиков работает.
[php:1:809861e181]
define('OK_APP_KEY', ''); // Ваш ключ приложения
define('OK_SECRET_KEY', ''); // Секретный ключ

$api_server = $_GET['api_server'];
$application_key = $_GET['application_key'];
$viewer_id = $_GET['logged_user_id']; // ID пользователя в Одноклассниках
$session_secret_key = $_GET['session_secret_key'];
$session_key = $_GET['session_key'];

$params = array(
"application_key=".$application_key."",
'format=JSON',
'fields=first_name,last_name,pic_1,url_profile,gender',
"uids=".$viewer_id."",
);
sort($params);

$sig = md5(join('', $params) . OK_SECRET_KEY);
$req = "".$api_server."api/users/getInfo?sig=".$sig."&" . join('&', $params);
$page = file_get_contents($req);
$obj = json_decode($page,true);
$first_name = $obj[0]['first_name']; // Имя
$last_name = $obj[0]['last_name']; // Фамилия
$sex = $obj[0]['gender']; // Пол игрока
// Проверяем на наличие пользователя в базе , регистрируем / авторизируем
echo $first_name.'<br />';
echo $last_name.'<br />';
echo $sex.'<br />';
[/php:1:809861e181]
Ну вот я пытался выводить как видите внизу 3 строки, там ничего нет, пытался выводить $page и $obj, там тоже пусто
Но просто прикол в том что если строку $req вывести в браузер и запустить в отдельном окне - выводит данные на странице, а вот через file_get_contents их не выводит почему то

21 Мар 2013, 16:55
san

Я не шарю в песочнице этой :\

$http_response_header выведи после запроса.

21 Мар 2013, 17:23
Jadson

san, NULL выводит

21 Мар 2013, 17:31
Анархист

Jadson,попробуй curl.

21 Мар 2013, 17:57
Jadson

Анархист, пробовал, может я не так писал, я его и не использовал никогда, но как не пробовал - итог тот же

21 Мар 2013, 18:12
Fantik

Jadson, посмотри в сторону кодировки. Не вникал в принцип работы твоего скрипта но мне приходилось парсить данные с google api и они не отображались из-за кодировки

21 Мар 2013, 20:35
Ответить на тему