Gå til innhold

Synkroniser ønskeliste med Steam


Anbefalte innlegg

Videoannonse
Annonse

Hei

 

Dette er noe vi ønsket å gjøre, men Steam har dessverre ikke et API som lar oss hente ut ønskelisten for en bruker. I tillegg har de ingen feed for spillene som ikke er lansert enda, så vi får ikke importert noen info om disse heller.

Lenke til kommentar

Hei

 

Dette er noe vi ønsket å gjøre, men Steam har dessverre ikke et API som lar oss hente ut ønskelisten for en bruker. I tillegg har de ingen feed for spillene som ikke er lansert enda, så vi får ikke importert noen info om disse heller.

Isthereanydeal.com (a.k.a. Waitlist) gjør da dette? De spør bare om lenken til øskelisten din.

 

Hva mener du med ingen feed for spillene som ikke er lansert? Hvordan er det relevant?

Lenke til kommentar

Det er mulig å gjøre det, men Steam har ingen offisiell støtte for det i sine offentlige API-er. (Etter det jeg kan se, hvis du vet noe mer om dette så er jeg veldig interessert i tips).

 

At de ikke har en feed er relevant fordi spill på ønskelistene til folk er ofte spill som enda ikke er lansert. For at vi skal kunne synkronisere listene må spillet også finnes i vår produktdatabase. Derfor får vi ikke mappet opp dette uten videre.

 

Med det sagt er dette noe vi egentlig ønsker å gjøre, men det krever en del "herjing" for å få det til. Men det er ikke umulig at det dukker opp en dag :)

Lenke til kommentar

Det går an å bruke XPath for å hente spilltitlene fra Steam. Med det nåværende layoutet på ønskelistene (eksempel: min) kan XPath-uttrykket være så enkelt som //h4 (dette henter innholdet i alle <h4>-tags på siden, som i skrivende stund kun er spilltitlene).

 

Så må dere da matche disse tekststrengene med titlene fra deres egen database. Spilltitler med perfekt match hos dere kan antas å kunne mappes uten videre. Når det kommer til spilltitler som ikke har en perfekt match kan dere for eksempel lage en automatikk som følger: Spilltitler fra Steam uten match hos dere lagres kontinuerlig i en liste, og så kan dere gå gjennom listen, finne det korrekte produktet (eller legge til et nytt) og lagre mappingen for fremtiden, evt. fjerne rapporteringen hvis den skyldes en feil.

 

Merk for øvrig at Steam ikke skiller plattformer (Windows, Linux, Mac), men gir deg spillet til alle plattformer. For å hente mulige plattformer til spill kan dere med XPath hente ut appID-en fra ønskelisten, som for eksempel kan finnes i siste del av tekststrengen //div[@class=gameLogo]/a/@href (kan hentes direkte med substring-after(//div[@class=gameLogo]/a/@href, 'app/')), og gå til butikksiden, store.steampowered.com/app/[appID]. Her finner dere overskrifter under "System requirements" (kan hentes vha. //div[@id=game_area_sys_req]/h2) som starter med navnet på systemet (PC, Mac, Linux). (Hjemmelekse: Finn en måte å komme forbi aldersgrense/fødselsdato-kontrollen på ;) )

 

(Her på produktsiden finner dere for øvrig også naturligvis spilltittelen, f.eks. //div[@class=apphub_AppName]. Det kan kanskje være lurt å hente både platform og tittel fra produktsiden, i stedet for tittel fra ønskelisten og plattform fra produktsiden, for å ha en litt mer idiotsikker kobling mellom tittel og plattform.)

 

Så får dere bestemme hva dere gjør med spill som har flere systemer. Kanskje dere kan ha funksjonalitet i ønskelisten som gjør at brukeren kan velge platform for hvert spill i listen, eventuelt tillate flere systemer på samme spill, eller la brukeren globalt velge platformer i prioritert rekkefølge slik at de kommer inn på Gamer.no-ønskelisten i henhold til denne prioriteringen.

 

Get programmin'! :)

Endret av MiSP
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...