Autor Zpráva
tomblu
Profil
Dobrý den, jak udělat abych měl na své stránce vždy aktuální obrázek mého steam profilu, když cesta k obrázku je vždy jiná. Napríklad tento steam profil http://steamcommunity.com/id/Maxodan.
Děkuji za odpověď
janbarasek
Profil
tomblu:
Pomocí serverového scriptu se ptát na jeho aktuální adresu. Můžeš i úplně jednoduše vytáhnout zdroják té stránky a pak přes regulární výraz najít a zjistit adresu, kterou už jen dosadíš do tagu <img>.

<?php
$data = file_get_contents('http://steamcommunity.com/id/Maxodan');
?>

Je fain to kontrolovat jen jednou za čas, aby jsi zbytečně kvůli každému požadavku neotravoval cílový server. Také je potřeba ošetřit, aby se nemohlo stát, že stránka bude nedostupná -> jinak totiž bude tvůj script čekat, než dostupná bude a stránka nepůjde načíst.
tomblu
Profil
Chtěl poprosit o podrobnější vysvětlení, jelikož jsem opravdu začátečník. Jak jsi prosím myslel tuhle větu "Můžeš i úplně jednoduše vytáhnout zdroják té stránky a pak přes regulární výraz najít a zjistit adresu, kterou už jen dosadíš do tagu <img>"? Adresu obrázku můžu dosadit do tagu img ale tá adresa se bohužel mění.
janbarasek
Profil
tomblu:
Adresu obrázku můžu dosadit do tagu img ale tá adresa se bohužel mění.
Ano, to jsi již psal. Ty tu adresu musíš jednou za čas nějak změnit, máš 2 možnosti:

- Ručně, ale je to dost otrava
- Automaticky, ale musíš něco umět

Pokud to chceš měnit automaticky, tak musíš znát nějaký jazyk, který umožňuje komunikovat s původním serverem, aby se ho pokaždé na novou adresu zeptal. Nejlepší bude asi použití jazyku PHP, který umožňuje zjištění adresy na úrovni serveru a uživateli už přiloží odkaz na původní obrázek.

Nejprve musíš vytáhnout zdrojový kód stránky (to uděláš tak, jak jsem psal v postu výše) a pak v něm najdeš odkaz na aktuální obrázek. Budeš pravděpodobně potřebovat regulární výrazy.
jenikkozak
Profil
Daleko rozumnější způsob než to, co navrhuje janbarasek, je využití jejich API.
janbarasek
Profil
jenikkozak:
Aha, to jsem netušil, neznám úplně každý web a jeho API (o hry se nezajímám, takže nesleduji jak vypadají herní weby).

API se hodí, každopádně já jsem radil obecný postup, který funguje v případě, když API není k dispozici.
tomblu
Profil
Děkuji, zkusím si pohrát s tím API.


V případě použití jejich API mi to napíše chybu "401 Unauthorized", snažím li se získat adresu pro avatarfull profilu http://steamcommunity.com/id/Maxodan. Adresa k obrázku http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=avatarfull&steamids=Maxodan
Rfilip
Profil
Používáš špatný key, musí to být API key získaný z formuláře (musíš mít steam účet) na http://steamcommunity.com/dev/apikey, víc info o tom je na https://steamcommunity.com/dev. Odpověd API je defaultně v json formátu, url k obrázku je pod klíčem avatarfull
tomblu
Profil
Děkuji, nyní už mi to vypíše všechny informace zde. Teď jen zbývá z tohoto kódu vytáhnout pouze avatarfull.


Prosím jak na to ?
Rfilip
Profil
Takhle:
<?php
$json =  file_get_contents("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=32B066CC4BD26C1195432153BE37FD3C&steamids=76561198055166315");
$json_p = json_decode($json);
echo $json_p->response->players[0]->avatarfull;
tomblu
Profil
Ano, děkuji moc, ještě jsem to řešil s jedním kamarádem a už mi vše funguje.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: