私は現在、ユーザーのプロフィールを取得してプレーヤーカードなどを作ることができる蒸気に関するウェブサイトを開発するためにPHPを使用しています。私はSteam Web Apiを使って私が望む情報を手に入れるのを手伝っています。問題は、私は、ユーザーのバッジを取得しようとするとき、私は「IPlayerService/GetBadges/V1」のAPIを使用し、であり、それはこのようにJSONデータを返しますのみbadgeidについて私に指示し、これはデータを返さなぜ私は蒸気カールを使用して蒸気ユーザープロファイルを取得できないのですか、蒸気バッジイメージを取得する方法はありますか?
{
"response": {
"badges": [
{
"badgeid": 23,
"level": 300,
"completion_time": 1434209651,
"xp": 125,
"scarcity": 0
},
{
"badgeid": 18,
"level": 15,
"completion_time": 1404061200,
"xp": 100,
"scarcity": 102167
},
{
"badgeid": 2,
"level": 3,
"completion_time": 1457872741,
"xp": 500,
"scarcity": 1334304
},
{
"badgeid": 13,
"level": 57,
"completion_time": 1356099851,
"xp": 260,
"scarcity": 5832743
},
{
"badgeid": 1,
"level": 3,
"completion_time": 1356099851,
"xp": 150,
"scarcity": 76725893
},
{
"badgeid": 1,
"appid": 231430,
"level": 3,
"completion_time": 1455540973,
"xp": 300,
"communityitemid": "817099833",
"border_color": 0,
"scarcity": 20438
},
{
"badgeid": 1,
"appid": 24010,
"level": 1,
"completion_time": 1403487961,
"xp": 100,
"communityitemid": "828384582",
"border_color": 0,
"scarcity": 15404
},
{
"badgeid": 1,
"appid": 35450,
"level": 1,
"completion_time": 1403573788,
"xp": 100,
"communityitemid": "842044372",
"border_color": 0,
"scarcity": 122236
},
{
"badgeid": 1,
"appid": 63380,
"level": 1,
"completion_time": 1403574599,
"xp": 100,
"communityitemid": "842169975",
"border_color": 0,
"scarcity": 222048
},
{
"badgeid": 1,
"appid": 303700,
"level": 1,
"completion_time": 1403743093,
"xp": 100,
"communityitemid": "866824198",
"border_color": 0,
"scarcity": 998614
},
{
"badgeid": 17,
"appid": 335590,
"level": 1,
"completion_time": 1420075581,
"xp": 100,
"communityitemid": "1438441936",
"border_color": 0,
"scarcity": 858393
},
{
"badgeid": 1,
"appid": 105450,
"level": 1,
"completion_time": 1451207235,
"xp": 100,
"communityitemid": "2454848086",
"border_color": 0,
"scarcity": 49755
},
{
"badgeid": 1,
"appid": 220200,
"level": 1,
"completion_time": 1451207275,
"xp": 100,
"communityitemid": "2454853894",
"border_color": 0,
"scarcity": 100821
},
{
"badgeid": 2,
"appid": 425280,
"level": 3,
"completion_time": 1451805075,
"xp": 300,
"communityitemid": "2483562201",
"border_color": 0,
"scarcity": 297565
},
{
"badgeid": 1,
"appid": 206440,
"level": 1,
"completion_time": 1451805331,
"xp": 100,
"communityitemid": "2549522337",
"border_color": 0,
"scarcity": 43807
},
{
"badgeid": 1,
"appid": 391220,
"level": 1,
"completion_time": 1455372224,
"xp": 100,
"communityitemid": "2699515873",
"border_color": 0,
"scarcity": 16843
},
{
"badgeid": 1,
"appid": 287390,
"level": 1,
"completion_time": 1457355907,
"xp": 100,
"communityitemid": "2764853882",
"border_color": 0,
"scarcity": 35158
}
]
,
"player_xp": 2735,
"player_level": 18,
"player_xp_needed_to_level_up": 65,
"player_xp_needed_current_level": 2600
}
}
appid、バッジイメージのURLについては何も言いません。私はので、私はちょうどAPPIDでURLを取得することはできません
を.pngをhttp://cdn.akamai.steamstatic.com/steamcommunity/public/images/items/105450/472be31927c4e77721fcba33bbd04b1331272e7eようなもので、それはURLは、蒸気にバッジの画像を確認しました。 蒸気ウェブAPIは、私の意図を満たすことができないので、私は必要な情報を取得するために、要求蒸気ユーザーのプロフィールページやバッジのページカールPHPを使用しよう、と私のコードされています
$url='http://steamcommunity.com/profile/76561198078931851';
$postFields='';
$cookie='';
$header=array('Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*//*;q=0.8', 'Accept-Encoding:gzip, deflate, sdch', 'Accept-Language:zh-CN,zh;q=0.8', 'Cache-Control:max-age=0', 'Connection:keep-alive','Host:steamcommunity.com', 'Upgrade-Insecure-Requests: 1','User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36');
$btch=curl_init($url);
curl_setopt($btch, CURLOPT_FAILONERROR, 0);
curl_setopt($btch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($btch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($btch, CURLOPT_TIMEOUT, 1);
curl_setopt($btch, CURLOPT_ENCODING, 'gzip,deflate,sdch'); // 防止乱码
curl_setopt($btch, CURLOPT_HEADER, 1);
curl_setopt($btch, CURLOPT_COOKIE, $cookie);
curl_setopt($btch, CURLOPT_HTTPHEADER, $header);
curl_setopt($btch, CURLOPT_HTTPGET, 1);
try{
$result=curl_exec($btch);
}
catch(exception $e)
{
echo $e->getMessage();
}
if(!$result)
{
echo 'false!';
}
echo '<pre>';
print_r($result);
echo '</pre>';
curl_close($btch);
カールんでした蒸気はユーザーのプロフィールページを返すことはありません。代わりに、蒸気コミュニティのホームページにリクエストをリダイレクトして、ログインを求めます。そのため、ユーザープロフィールを取得することはできません。 私は以下の関連する質問を読む: Steam Web API get Badge Image URL 誰もがこの問題を解決する方法について何かを知っていますか、あなたは私にいくつかの助けを提供できますか?事前に感謝します!
私はSteam Web APIにログインする必要があり、そのプロフィールページを提供すると仮定します。予期しなかったように聞こえません。:-) – MarcoS
@MarcoSあなたのコメントをありがとうが、多分あなたは私を誤解しました。 1それは、私が蒸気ウェブAPIを使用するときではなく、私がログインするように求められている蒸気ユーザーのプロフィールページ(http://steamcommunity.com/profiles/76561198119890595のような)をPHPのカールのリクエストに直接要求するときです。蒸気ウェブAPIはうまく動作し、必要な情報を提供できません。 2私はウェブブラウザ(私はクロム、エッジとieを試してみました)を使用してユーザープロフィールページにアクセスしたとき、私はログインするように求められていないので、まだすべてのコンテンツを取得できます。私はログインしていないことを確認するためにすべてのクッキーをクリアし、それでも動作します。それは最も混乱する部分です。 – RainnyMiG
申し訳ありませんが、Steam Web APIについてはわかりません。私はちょうどそれがあなたの過ちになるかもしれないと仮定して、外部からのプロンプトを出そうとしました。:-( – MarcoS