PHP и JSON для Reddit

хочу получить от конкретного пользователя Reddit некоторые данные.

На серверах Reddit есть динамический файл JSON, к которому можно получить удаленный доступ.

Путь к файлу JSON: http://www.reddit.com/user/tiagoperes/about.json

(где вы можете заменить «tiagoperes» в URL любым пользователем, которого вы пытались найти) — спасибо Том Чапин

проблема: Я получаю сообщение об ошибке

Ошибка http 500: reddiant.com/reddit.php

Журнал ошибок:

Предупреждение PHP:
file_get_contents (https://www.reddit.com/user/tiagoperes/about.json):
не удалось открыть поток: HTTP-запрос не выполнен! HTTP / 1.1 403 Запрещено
строка 5

Неустранимая ошибка PHP: необработанное исключение «InvalidArgumentException»
с сообщением ‘Переданная переменная не является массивом или объектом, используя пустой
массив вместо ‘в строке 8

Код:

<?php$url = "https://www.reddit.com/user/tiagoperes/about.json";
$json = file_get_contents($url);

$jsonIterator = new RecursiveIteratorIterator(
new RecursiveArrayIterator(json_decode($json, TRUE)),
RecursiveIteratorIterator::SELF_FIRST);

foreach ($jsonIterator as $key => $val) {
if(is_array($val)) {
echo "$key:\n";
} else {
echo "$key => $val\n";
}
}

(вдохновленный в этом: http://codepad.org/Gtk8DqJE)

Решение: Попросить отладку.

В чем проблема прямо здесь?

Не могу найти способ заставить его работать и должен быть достаточно простым.

Спасибо!

-2

Решение

Получал некоторые неприятности в первой процедуре, поэтому решил изменить подход.

Получилось так работать:

<?php
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"User-Agent: reddiant api script\r\n"));

$context = stream_context_create($opts);
$url = "http://www.reddit.com/user/tiagoperes/about.json";
$json = file_get_contents($url, false, $context);

$result = json_decode($json, true);

// Result:
var_dump($result);

//echo data
echo $result['data']['name'];
2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector