Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JSON PHP可以';t从Steam URL调用值_Php_Json_Steam - Fatal编程技术网

JSON PHP可以';t从Steam URL调用值

JSON PHP可以';t从Steam URL调用值,php,json,steam,Php,Json,Steam,我试图用Steam的登录名创建一个网站,但当我试图从JSON调用一个值时,它不起作用。除了获取JSON值之外,所有内容都在源代码中工作。我甚至试过打印steam ID,所以我知道该ID有效。URL也可以使用 这是: 我试过用谷歌搜索所有东西。如果我错过了什么,我很抱歉。谢谢你的帮助。我基本上把JSON代码放在一个变量中,从Steam网站检索它。这是最好的解决方案,我会坚持下去 <?php require 'openid.php'; try { $openid = new LightOpen

我试图用Steam的登录名创建一个网站,但当我试图从JSON调用一个值时,它不起作用。除了获取JSON值之外,所有内容都在源代码中工作。我甚至试过打印steam ID,所以我知道该ID有效。URL也可以使用

这是:


我试过用谷歌搜索所有东西。如果我错过了什么,我很抱歉。

谢谢你的帮助。我基本上把JSON代码放在一个变量中,从Steam网站检索它。这是最好的解决方案,我会坚持下去

<?php
require 'openid.php';
try {
$openid = new LightOpenID('blah.com');
if (!$openid->mode) {
    $openid->identity = 'http://steamcommunity.com/openid';
    header('Location: ' . $openid->authUrl());
} elseif ($openid->mode == 'cancel') {
    echo 'User has canceled authentication!';
} else {
    $steamurl = ($openid->validate() ? $openid->identity . '' : 'error');
    if ($steamurl == 'error') {
        print "There was an error signing in.";
    } else {
        $id          = end(explode('/', $steamurl));
        $context = stream_context_create(array('http' => array('header'=>'Connection: close\r\n')));
        $json_source = file_get_contents("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=XXXXXXXXXXXXXXXXXXXXXXXX&steamids=" . $id . "&format=json",false,$context);
        $json_output = json_decode($json_source,true);
        $json_output->response->players[0]->personaname;
        echo $json_output["response"]["players"][0]["personaname"];
    }
}
} catch (ErrorException $e) {
echo $e->getMessage();
}
?>

谢谢你,路人和哈克雷的帮助


在未来,我必须制作饼干,以及所有简单的东西。实际上,我现在就要开始了。

您应该知道您遇到了哪些错误。如果没有收到任何错误,请启用最高级别的错误报告并启用错误日志记录。按照错误日志进行操作。因此,在研究谷歌和整个互联网之前,首先检查一下如何从计算机中获取更多信息。这给了我严格的标准:只有变量应该在第15行的C:\xampp\htdocs\openid\example.php中通过引用传递,但我知道这意味着它仍然可以在代码行中运行。我甚至尝试过打印分解/结束值(这给了我一个很好的结果)。还有什么问题?这是唯一的错误。顺便说一句,错误日志没有显示任何异常。您编写的获取json值将不起作用:
echo$json_output['players']['personame']-所以我至少希望这里有一些关于未定义索引的警告。你没有得到这些,但是那行代码被执行了?嗯,我可能启用了一些错误的东西。不管怎样,我对JSON完全陌生,从来没有真正为它烦恼过。我如何才能正确地集成这些元素?通过了解
json\u decode
的功能,下面是一个示例:-编辑:下面是如何从这些元素访问的分步指南:
{
"response": {
    "players": [
        {
            "steamid": "76561198049205920",
            "communityvisibilitystate": 3,
            "profilestate": 1,
            "personaname": "baseman101",
            "lastlogoff": 1357603378,
            "profileurl": "http://steamcommunity.com/id/baseman101/",
            "avatar": "http://media.steampowered.com/steamcommunity/public/images/avatars/24/24bb7c0505db7efe1f1a602d09a5ea412e0ab4bd.jpg",
            "avatarmedium": "http://media.steampowered.com/steamcommunity/public/images/avatars/24/24bb7c0505db7efe1f1a602d09a5ea412e0ab4bd_medium.jpg",
            "avatarfull": "http://media.steampowered.com/steamcommunity/public/images/avatars/24/24bb7c0505db7efe1f1a602d09a5ea412e0ab4bd_full.jpg",
            "personastate": 1,
            "primaryclanid": "103582791429521408",
            "timecreated": 1316469294,
            "loccountrycode": "US",
            "locstatecode": "VA",
            "loccityid": 3918
        }
    ]

}
}
<?php
require 'openid.php';
try {
$openid = new LightOpenID('blah.com');
if (!$openid->mode) {
    $openid->identity = 'http://steamcommunity.com/openid';
    header('Location: ' . $openid->authUrl());
} elseif ($openid->mode == 'cancel') {
    echo 'User has canceled authentication!';
} else {
    $steamurl = ($openid->validate() ? $openid->identity . '' : 'error');
    if ($steamurl == 'error') {
        print "There was an error signing in.";
    } else {
        $id          = end(explode('/', $steamurl));
        $context = stream_context_create(array('http' => array('header'=>'Connection: close\r\n')));
        $json_source = file_get_contents("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=XXXXXXXXXXXXXXXXXXXXXXXX&steamids=" . $id . "&format=json",false,$context);
        $json_output = json_decode($json_source,true);
        $json_output->response->players[0]->personaname;
        echo $json_output["response"]["players"][0]["personaname"];
    }
}
} catch (ErrorException $e) {
echo $e->getMessage();
}
?>