2015-04-10 4 views
0

Я пытаюсь найти игру, в которой кто-то играет на twitch, используя api. Я установил json_decode, и он показывает весь контент из api. Однако всякий раз, когда я пытаюсь сыграть в print_r, я получаю сообщение об ошибке.json_decode - проблемы с api

Ошибка:

Notice: Undefined property: stdClass::$game in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\Portfolio -- Website\twitchstreaminfo\streaminfo.php on line31 

PHP код:

$streamer = $_POST['username']; 
$apiurl = "https://api.twitch.tv/kraken/streams/" . $streamer; 
$apicontent = file_get_contents($apiurl); 
$streamerinfo = json_decode($apicontent); 
print_r($streamerinfo->game); 

ответ

0

Попробуйте просто выполнив следующие действия первого и проверить результат:

print_r($streamerinfo); 

Из того, что я могу видеть с API , следует:

print_r($streamerinfo->stream->game); 
0

Ваша ошибка в том, что свойство «$ game» не существует на объекте «$ streamerinfo». Как было предложено выше, попробуйте притянуть «$ streamerinfo», чтобы определить, что он действителен. Еще одна вещь, которую вы можете сделать, чтобы предотвратить это, чтобы добавить следующее:

if (isset($streamerinfo->game) { 
    print_r($streamerinfo->game); 
} 

Этот код позволит предотвратить эту ошибку, но не решить проблему. Я предлагаю это как окончательное решение, чтобы помочь вам решить проблему

if (isset($streamerinfo->game) { 
    print_r($streamerinfo->game); 
    } else { 
    print_r($streamerinfo); 
    } 

Это будет держать ваш код от взлома так, что она сейчас. Но он также напечатает «$ streamerinfo», если он не сработает. Таким образом, вы можете понять, почему это не удалось.

Смежные вопросы