Moikka! Innostuin kokeilemaan itsekkin tuota veikkauksen APIa, Santtu55:n innoittamana.
Omaa versiotani olen yrittänyt toteuttaa PHP:llä, cURL -kirjastoa käyttäen.
Jostain syystä en kuitenkaan saa dataa tulostettua onnistuneesti. Alkuun sain tulostettua pelkkää tyhjää.
Ja kun otin SSL-sertifikaatin tarkistusuksen pois, vastaus näyttää tältä:
�‹��í•Mkã0�†ÿJ˜s�Qü�Û7o�´�Ò�—²ô0µE#¢H©$§-Áÿ½#ÇiCIwÓÝ�zXƒ1£�FïÃŒwP�|´ýÚÁ=®ùŒ^È �_-&Ї;ƒªêÖXB�¢"oÂ"�a�ºšöÂÕ|2#[o¸º�>��Y�Äi<ðO�J©-�ó„!�:?ýÈ�„aç0ÜÖÒÙ|‹Bâ<Þý�ä+^Ô’�ÜA¶ƒ5>�\òÒ ¨,F'ÓÒ܈’J:œøP‹r5§÷55dÎÔœb…*�®ÚØvgg±ý%tUÙëç—ç&_\æ?¦�hú`t'_+Í€dpÛñ�•âÒGr±Z!‰DêÔ®Ô^œ�,»¯Ú«=–|Ë%)íóá#>û˜ÎW êåÊi%44䶥6m�ª�²ÑþŠt×လ”F¹Ë�QœFI�Ž ¹mú�F;¤ú�h�#2þ�m˜~k´�óËØ ´è~KvRµ‡w�ì ªR×[nN`}¥�½‡Ê‚8L΄š�Aeá�¨�6ìÇ9ûÙ[ ºçÆž 8_Òhª¸Ü,�~�â™9ô�åЙ,ú'ˆIò;3øºÆ
Hieman vaikea tota on käsitellä. Elikkäs, mitä teen väärin? mitä mun pitäs muokata koodissa, että pääsen käsitteleen tuota dataa?
Ohjelma on tämän näköinen:
function veikkaus_v1($game){ $host = "https://www.veikkaus.fi"; $header = array( "Accept: application/json", "Content-Type: application/json", "X-ESA-API-Key: ROBOT" ); // TODO tarkastetaan syötetyt parametrit // Rakennetaan url $url = $host ."/api/v1/sport-games/draws?game-names=". $game; // Alustetaan cURL $ch = curl_init(); // Poistetaan SSL -sertifikaatin tarkistus. curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); // säädöt ennen pyynnön suorittamista curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Data palautetaan muuttujaan curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 0); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); // Annetaan header -data // Suoritetaan pyyntö $data = curl_exec($ch); // Suljetaan cURL curl_close($ch); return $data; } echo veikkaus_v1("SCORE");
Palvelimen vastaus on gzip-pakattu, joten se ei näytä suoraan tulostettuna järkevältä. Helpoiten saat koodin toimimaan asettamalla CURLOPT_ENCODING:n.
curl_setopt($ch, CURLOPT_ENCODING, "identity");
Kiitoksia! Niin pienestä se oli kiinni. Ja olihan tuo mainittu kun lueskeli eteenpäin tuota ReadMe -filua..
Veikkaus kirjoitti:
Veikkauksen palvelu pyrkii palauttamaan datan pakattuna aina, kun se on mahdollista. Tästä syystä palvelun käyttämistä helpottaa mikäli käytössä on kirjasto, joka osaa purkaa gzip pakatut vastaukset automaattisesti.
Parempi ratkaisu on asettaa tuohon asetukseen tyhjä teksti, jolloin (manuaalin mukaan) kaikki tuetut pakkaustavat ovat käytössä ja myös puretaan automaattisesti.
curl_setopt($ch, CURLOPT_ENCODING, "");
Aihe on jo aika vanha, joten et voi enää vastata siihen.