【问题标题】:failed to open stream: HTTP request failed! HTTP/1.1 401 Unauthorized in无法打开流:HTTP 请求失败! HTTP/1.1 401 未经授权
【发布时间】:2014-01-01 03:00:39
【问题描述】:

通过为我的网站设置我的自动捐赠系统,除了最后一页,我得到了这个错误。这是通过 Steam 提供的 Garrys Mod 服务器。

错误:警告:file_get_contents(http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=xxxxxxxxxxxxxxxxxxx&steamids=xxxxxxxxxxxxx) [function.file-get-contents]:打开流失败:HTTP 请求失败! HTTP/1.1 401 Unauthorized in /usr/www/angelgaming/public/multiple-rank/inc/page.verify.php 上线

验证.php代码:

<?
    include('apikey.php');
    function toid($friendid) {
    if (substr($friendid,-1)%2==0) $server=0; else $server=1;
    $auth=bcsub($friendid,'76561197960265728');
    $auth=bcsub($auth,$server);
    $auth=bcdiv($auth,2);
    return "STEAM_0:".$server.':'.$auth;
    }
    $string = file_get_contents('http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=' . $API_KEY . 'steamids=' . $_COOKIE['communityid']);
    $json_a = json_decode($string,true);
    $steamname = $json_a['response']['players'][0]['personaname'];
    $avatar64 = $json_a['response']['players'][0]['avatarfull']; 

?>  
<h4>Verify the information below before you proceed</h4>
<div id="verify">
    <p><b><? echo $steamname; ?></b></p>
    <p><img id="avatar" src="<? echo $avatar64; ?>" style="border-radius: 8px;" /></p>
    <p><h6>Donation Amount: $<? echo RankPrice($_POST["rank"]) . CURRENCY;?></h6></p>
    <br />
    <p>
    <form name="_xclick" action="https://www.paypal.com/nz/cgi-bin/webscr" method="post">
    <input type="hidden" name="cmd" value="_xclick">
    <input type="hidden" name="business" value="<? echo PAYPAL_EMAIL; ?>">
    <input type="hidden" name="currency_code" value="<? echo CURRENCY; ?>">
    <input type="hidden" name="item_name" value="<? echo SERVER_NAME; ?> Donation (<? echo $steamname; ?>)">
    <input type="hidden" name="item_number" value="<? echo toid($_COOKIE['communityid']) . '#' . $_POST["rank"]; ?>">
    <input type="hidden" name="amount" value="<? echo RankPrice($_POST["rank"]); ?>">
    <input role="button" class="btn btn-success" value="Donate" type="submit" alt="Donate to Envidious via PayPal">
    <a href="" role="button" class="btn btn-danger">Go Back</a></form>
    </div>

【问题讨论】:

  • 401 来自远端服务器,表示您未授权,或授权失败。因此,您需要检查您的身份验证凭据。
  • 如何检查身份验证凭据
  • 您的 api 密钥很可能是您的身份验证凭据,您需要验证您使用的是否正确(我假设错误消息中您的密钥为 XXXXX),

标签: php stream steam


【解决方案1】:

如果您访问文档https://developer.valvesoftware.com/wiki/Steam_Web_API#GetPlayerSummaries_.28v0002.29 中列出的网址 http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=XXXXXXXXXXXXXXXXXXXXXXX&steamids=76561197960435530

它给出了 401,因为它使用了无效的密钥 (XXXXXXXX),因为您收到了类似的响应,也可能是您发送了无效的 api 密钥或根本没有密钥?

【讨论】:

    【解决方案2】:

    可能是用户身份验证细节问题。我遇到了同样的问题,通过将用户名和密码传递给标题得到了以下解决方案。

    https://www.hashbangcode.com/article/using-authentication-and-filegetcontents

    【讨论】:

      猜你喜欢
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      • 2020-01-21
      • 2023-01-01
      • 1970-01-01
      • 2015-11-21
      • 2021-05-04
      • 2016-06-02
      相关资源
      最近更新 更多