Autor | Zpráva | ||
---|---|---|---|
tomblu Profil |
#1 · Zasláno: 18. 2. 2014, 04:57:39
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 |
#2 · Zasláno: 18. 2. 2014, 08:06:01
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 |
#3 · Zasláno: 18. 2. 2014, 14:33:49
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 |
#4 · Zasláno: 18. 2. 2014, 17:25:00
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 |
#5 · Zasláno: 18. 2. 2014, 17:56:30
Daleko rozumnější způsob než to, co navrhuje janbarasek, je využití jejich API.
|
||
janbarasek Profil |
#6 · Zasláno: 18. 2. 2014, 18:45:27
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 |
#8 · Zasláno: 18. 2. 2014, 20:35:19
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 |
#9 · Zasláno: 18. 2. 2014, 21:03:45 · Upravil/a: tomblu
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 |
#10 · Zasláno: 18. 2. 2014, 21:54:15
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 |
#11 · Zasláno: 18. 2. 2014, 23:08:06
Ano, děkuji moc, ještě jsem to řešil s jedním kamarádem a už mi vše funguje.
|
||
Časová prodleva: 11 let
|
0