Archief - FlickR API

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Unrach

Legacy Member
Hey allemaal,

Ik ben nu al bijna 3 uur aan't klungelen om met de API van flickr te werken. Het is mij eindelijk gelukt om de (soort van) xml in te lezen. Ik gebruik de method php_serial.

Nu mij dat gelukt is, wil ik de informatie nog uitlezen. Maar daarvoor zou ik eerst de structuur moeten snappen. Blijkbaar is er geen duidelijk voorbeeld te vinden op het internet, want ik zit mij al de hele tijd kapot te zoeken.

Dit is de xml structuur dat ik binnenkrijg:
Code:
a:2:{s:9:"photosets";a:5:{s:4:"page";i:1;s:5:"pages";i:1;s:7:"perpage";i:2;s:5:"total";i:2;s:8:"photoset";a:2:{i:0;a:16:{s:2:"id";s:17:"72157628091894136";s:7:"primary";s:10:"6329122755";s:6:"secret";s:10:"3a828baa2f";s:6:"server";s:4:"6226";s:4:"farm";d:7;s:6:"photos";s:1:"3";s:6:"videos";i:0;s:5:"title";a:1:{s:8:"_content";s:12:"Landschappen";}s:11:"description";a:1:{s:8:"_content";s:0:"";}s:18:"needs_interstitial";i:0;s:22:"visibility_can_see_set";i:1;s:11:"count_views";s:1:"1";s:14:"count_comments";s:1:"0";s:11:"can_comment";i:0;s:11:"date_create";s:10:"1320867101";s:11:"date_update";s:10:"1320867104";}i:1;a:16:{s:2:"id";s:17:"72157627966673565";s:7:"primary";s:10:"6328509117";s:6:"secret";s:10:"54c414296e";s:6:"server";s:4:"6111";s:4:"farm";d:7;s:6:"photos";s:1:"4";s:6:"videos";i:0;s:5:"title";a:1:{s:8:"_content";s:10:"Portretten";}s:11:"description";a:1:{s:8:"_content";s:0:"";}s:18:"needs_interstitial";i:0;s:22:"visibility_can_see_set";i:1;s:11:"count_views";s:1:"0";s:14:"count_comments";s:1:"0";s:11:"can_comment";i:0;s:11:"date_create";s:10:"1320866486";s:11:"date_update";s:10:"1320866620";}}}s:4:"stat";s:2:"ok";}

Het enig wat ik er uit kan halen is
PHP:
echo $flickr['stat'];

Dit staat op het einde van de xml en geeft mij de waarde "ok" terug. Waarschijnlijk moet ik een paar nodes doorkrossen en zo iets neertypen:
PHP:
$flickr['photosets']['title']

Maar daar zit het probleem dus, ik zou niet weten hoe omdat ik de structuur van die xml niet 100% door heb.

Iemand die hier wat verstand van heeft een kleine simpele uitleg kan geven?

Alvast hartelijk dank!

Zero Grav

Legacy Member
Dat is JSON, als ge json_decode uitvoert op dat resultaat gaat ge gewoon een php array krijgen met uw foto's in enzo. Daarmee dat het ook gewoon een veel te zalig formaat is. :)

Unrach

Legacy Member
Zero Grav zei:
Dat is JSON, als ge json_decode uitvoert op dat resultaat gaat ge gewoon een php array krijgen met uw foto's in enzo. Daarmee dat het ook gewoon een veel te zalig formaat is. :)

Ah oke, merci. Daar had ik iets van tegen gekomen ja. Ik ga het morgen eens proberen. Maar wilt dat dan zeggen dat ik deze omzetting moet weglaten:

PHP:
 $flickr = unserialize((file_get_contents($url));

Ik dacht dat die "file_get_contents" ongeveer hetzelfde was al json_decode?

Unrach

Legacy Member
Merci voor de reacties allemaal. Het is mij gelukt :-)

Dit is de inlees metode da ik gedaan heb:
PHP:
$photosets_list = json_decode(file_get_contents("http://api.flickr.com/services/rest/?method=flickr.photosets.getList&api_key=" . $api_key . "&user_id=" . $flickr_id . "&format=json&nojsoncallback=1"), true);

Toen heb ik een print_r gedaan op mijn $photosets_list. Al die gegevens heb ik in textedit geplaatst en een mooie bladspiegel van gemaakt. Samen met de documentatie die jullie me gegeven hebben, heb ik zo de logica door kunnen krijgen om specifieke gegevens uit te lezen!

dJeez

Legacy Member
Unrach zei:
Dit is de xml structuur dat ik binnenkrijg:
Code:
a:2:{s:9:"photosets";a:5:{s:4:"page";i:1;s:5:"pages";i:1;s:7:"perpage";i:2;s:5:"total";i:2;s:8:"photoset";a:2:{i:0;a:16:{s:2:"id";s:17:"72157628091894136";s:7:"primary";s:10:"6329122755";s:6:"secret";s:10:"3a828baa2f";s:6:"server";s:4:"6226";s:4:"farm";d:7;s:6:"photos";s:1:"3";s:6:"videos";i:0;s:5:"title";a:1:{s:8:"_content";s:12:"Landschappen";}s:11:"description";a:1:{s:8:"_content";s:0:"";}s:18:"needs_interstitial";i:0;s:22:"visibility_can_see_set";i:1;s:11:"count_views";s:1:"1";s:14:"count_comments";s:1:"0";s:11:"can_comment";i:0;s:11:"date_create";s:10:"1320867101";s:11:"date_update";s:10:"1320867104";}i:1;a:16:{s:2:"id";s:17:"72157627966673565";s:7:"primary";s:10:"6328509117";s:6:"secret";s:10:"54c414296e";s:6:"server";s:4:"6111";s:4:"farm";d:7;s:6:"photos";s:1:"4";s:6:"videos";i:0;s:5:"title";a:1:{s:8:"_content";s:10:"Portretten";}s:11:"description";a:1:{s:8:"_content";s:0:"";}s:18:"needs_interstitial";i:0;s:22:"visibility_can_see_set";i:1;s:11:"count_views";s:1:"0";s:14:"count_comments";s:1:"0";s:11:"can_comment";i:0;s:11:"date_create";s:10:"1320866486";s:11:"date_update";s:10:"1320866620";}}}s:4:"stat";s:2:"ok";}
Zero Grav zei:
Dat is JSON, als ge json_decode uitvoert op dat resultaat gaat ge gewoon een php array krijgen met uw foto's in enzo. Daarmee dat het ook gewoon een veel te zalig formaat is. :)
Toch even corrigeren want dat is geen JSON, dat is een serialized PHP string. Om exact te zijn : een associatieve array bestaande uit 2 elementen, met name "photosets" (met 5 elementen) en "stat" met waarde "ok". Je kan dat overigens makkelijk zien door de hele rimram de deserializen (kan online op vb. Online PHP Unserializer).

@Unrach: Via unserialize moet je die specifieke output kunnen lezen. Maar ik zie dat je ondertussen wel de manier hebt gevonden om effectief JSON via Flickr binnen te krijgen. Dus eigenlijk doet het er niet echt meer toe :p.

Unrach

Legacy Member
dJeez zei:
@Unrach: Via unserialize moet je die specifieke output kunnen lezen. Maar ik zie dat je ondertussen wel de manier hebt gevonden om effectief JSON via Flickr binnen te krijgen. Dus eigenlijk doet het er niet echt meer toe :p.

Ja ik had gezien bij de documentatie van flickr dat je ook de method "JSON" kon opgeven. Dus ik had die dan maar gepakt :-)

Zero Grav

Legacy Member
Lol, my bad, ik zag curly brackets en Flickr API en 'k was vertrokken. :)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan