testtestHome

Uw Google Reader OPML-file ophalen via PHP et CURL…

29.03.2009 door Mich - lire la version francophone - read this in English (1)

Ik hou niet echt van dubbel werk. Wanneer ik mij inschrijf op de RSS-feed van een blog, vind ik het lastig dat ik daarnaast ook nog eens mijn blogroll moet gaan aanpassen. Ik doe het eerlijk gezegd al een tijdje niet meer. Ondertussen heb ik het aangepast. De oplossing is eenvoudig en noemt OPML.

Mijn idee : op dagelijkse basis mijn OPML-file van Google Reader gaan ophalen en ergens stockeren op mijn server. De blogroll zou op die manier gegenereerd worden vanaf de OPML-file iedere keer dat iemand ze raadpleegt. Zo zou ze maximum 24u vertraging hebben met de realiteit.

Maar de realiteit is echter een beetje minder eenvoudig, want om de OPML-file te kunnen downloaden moet je je eerst aanloggen op Google Reader. Hiervoor moest ik een beetje prutsen en iets doen dat ik nooit eerder had gedaan: werken met cURL en cookies.

Het principe is eenvoudig: roep een URL aan met een reeks parameters, in mijn geval de pagina achter een aanlog-formulier van Google. Ik geef aan cURL de nodige opties mee dat die de gegevens die voor een cookie bestemd zijn naar een file gaat schrijven. Deze file gebruik ik dan later opnieuw, als cookie, om 'aangelogd' de OPML-file op te halen.

Indien u Google Reader gebruikt, dan is de URL van uw OPML-file de volgende:

http://www.google.com/reader/public/subscriptions/user/<user_id>/

U kunt uw user id achterhalen door op « All Items » te klikken. De user id bevindt zich tussen de %2F, in mijn geval ‘06937166373900766291’:

http://www.google.com/reader/view/#stream/user%2F06937166373900766291%2Fstate%2Fcom.google%2Freading-list

Het volgend PHP-scriptje logt zich aan en gaat de OPML-file ophalen. Ik gebruik in dit voorbeeldje wel absolute paden voor de cookie en de file, omdat ik het scriptje in crontab zet om dagelijks op te halen.

<?
$email="barney.stinson@gmail.com";
$password="legen-wait4it-wait4it-wait4it-dary";

$url = "https://www.google.com/accounts/ServiceLoginAuth?service=reader";
$params = "service=reader";
$params.= "&Email=".urlencode($email);
$params.= "&Passwd=$password";
$params.= "&continue=http://www.google.com/reader/";
$params.= "&hl=en";
$params.= "&nui=1";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/cookie.txt');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$data = curl_exec($ch);
curl_close($ch);

$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, "http://www.google.com/reader/public/subscriptions/user/06937166373900766291/");
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch2, CURLOPT_COOKIEJAR, '/tmp/cookie.txt');
curl_setopt($ch2, CURLOPT_COOKIEFILE, '/tmp/cookie.txt');
curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, false);
$data = curl_exec($ch2);
curl_close($ch2);

$fp = fopen("/home/emich.be/public_html/misc/google-reader-subscriptions.xml","w");
fputs($fp,$data);
fclose($fp);
unlink("/tmp/cookie.txt");
?>

Vervang natuurlijk uw login, paswoord en user id in het bovenstaand voorbeeld. Ik plaats de cookie-file in de /tmp folder opdat deze extern nooit toegankelijk wordt gemaakt. Deze file wordt op het einde van het scriptje gedelete.

Dit scriptje zou eigenlijk ook in puur bash-scripting kunnen worden geschreven, maar ik koos hier niet voor omdat niet iedereen een server heeft draaien met command line access.

tags: . .

Post een reactie

Meer en meer inbraken in Schaarbeek…

26.03.2009 door Mich - lire la version francophone (4)

Deze namiddag ontving ik een telefoonoproep :

Dag meneer, ik ben van bedrijf X en ik bel u in naam van de gemeente Schaarbeek. Wij zouden graag met u afspreken om uw sloten te komen nakijken en u preventief informatie te geven over inbraken, groeiend en verontrustend fenomeen in uw gemeente. Wanneer bent u beschikbaar?

Bon. Chronologisch, wat toen in me opkwam:

  1. Ik heb niks door. Ik zeg dat ik later terug bel, want ik heb geen zicht op mijn agenda (want ja, ik heb ook wat anders te doen naast foto’s met DJ Reynders).
  2. Mijn frank valt. Ik heb nooit aan die type achter het raam in de fantastische lokettenzaal van het gemeentehuis van Schaarbeek 1030 reprezent mijn telefoonnummer gegeven. Ik ben een vriendje van Bernard “Je t’aime” Clerfayt op Facebook, maar ook daar heb ik sterke twijfels over het eventuele misbruik van mijn gegevens.
  3. Maar ja, is het niet een beetje opvallend? Zou de gemeente Schaarbeek nu echt budget hebben om een privé-bedrijf in te huren (en niet de politie) om af te spreken met tienduizenden gezinnen om hen bang te maken? Schrik bestrijden door schrik te gebruiken lijkt mij nu ook niet zo’n slimme tactiek tegen inbraken.
  4. En wat als het eigenlijk gewoon mensen zijn die komen prospecten wat er hier allemaal te stelen valt en hoe gemakkelijk het wel niet is om hier binnen te geraken ?
  5. Laat ons toch niet te slecht zijn. Misschien is het gewoon een afzetter die wat geld probeert te verdienen om aan zijn kleine een PlayStation te kunnen kopen door nep kogelvrije koevoet-veilige super mega hyper nepdeuren te verkopen die nooit zullen worden geïnstalleerd?
  6. Of misschien is het echt wel de gemeente Schaarbeek. Maar dat zou mij echt heel sterk lijken.

Maar bon, ik heb echt wel geen inbraakadvies nodig hoor. Vooraleer ze door de lastige deur beneden zijn, moeten ze nog langs mijn huisbaas die ieder verdacht geluidje kan horen. Dan moeten ze ook nog langs de nymphomane 50-jarige vrouw geraken vooraleer ze op mijn verdiep komen en het aan de stok krijgen met mijn 2 luipaarden en @flexyflow (indien u voor de optie ‘breek mijn nek als ik u wakker maak’ heeft gekozen). Dus ja, no worries, ze.

tags: . . . .

4 reactie(s)

Didier Reynders

25.03.2009 door Mich

Mojito en witteke for ever.

tags:

Post een reactie

Barcamp Antwerpen…

24.03.2009 door Mich - lire la version francophone (1)

Vorige zaterdag vond er alweer een nieuwe editie van Barcamp plaats. Deze keer was het in Antwerpen te doen en werd het georganiseerd door Anne. Misschien kennen jullie het principe van Barcamp wel: presentaties, maar geen toeschouwers. Met andere woorden, iedereen die deelneemt aan Barcamp moet zelf ook een presentatie geven of op de één of andere manier bijdragen aan de organisatie.

De presentaties die ik het leukste vond waren die van Koen Delvaux, over een auto-pilot systeem over GPS voor telegeleide vliegtuigen, Steffest en zijn Arduino-experimenten en Tom Klaasen over @twunch. Er waren waarschijnlijk ook nog een andere reeks interessante presentaties, maar zo gaat dat op Barcamp, ze zijn parallel en het is onmogelijk om zich in 3 stukken te knippen.

Mijn presentatie kreeg de naam "build your own Google Latitude", of hoe je eigenlijk zelf op je GSM met J2ME via de location-module (JSR-179) je GPS-positie kan doorsturen naar een centrale server en deze op je site op een Google Map aan de wereld kan tonen.

Ondanks het hoog aantal last-minute afwezigen vond ik Barcamp een succes. Een grote dank u aan Anne en de sponsors: Nucleus, Devia, Chocolatque, 10to1, The Parking Lot en Nespresso.

Volgende keer in Brussel?

tags: . .

1 reactie(s)

Barcamp Antwerpen, groepsfoto

21.03.2009 door Mich

Als aanvullende demo ook bij mijn presentatie over gps toestanden.

Waar? | tags:

Post een reactie

Stilte…

18.03.2009 door Mich - lire la version francophone (3)

Ik weet echt niet wat zeggen de laatste dagen. Echt wel geen goesting om wat dan ook te schrijven. Maar alles gaat goed, he, dat het daarover toch maar eventjes duidelijk is.

tags:

Post een reactie

Luierikken

13.03.2009 door Mich

Get a job!

tags:

Post een reactie

Guitar Hero vraagje

13.03.2009 door Mich

Hoe neem ik dit in het vliegtuig?

Waar? | tags:

Post een reactie

Suck it, City 2!

12.03.2009 door Mich

Waar? | tags:

Post een reactie

San Francisco Bay sunset

12.03.2009 door Mich

Waar? | tags:

1 reactie(s)

Transamerika

12.03.2009 door Mich

Blijf altijd maar rechtdoor rijden om naar Ushaia te gaan.

Waar? | tags:

Post een reactie

Mobib USA

11.03.2009 door Mich

"Not in service", toeval?

Waar? | tags:

Post een reactie

1 Infinite Loop

11.03.2009 door Mich

Waar? | tags:

Post een reactie

Googleplex #4

10.03.2009 door Mich

Waar? | tags:

Post een reactie

Googleplex #3: Magic Johnsson

10.03.2009 door Mich

Toeval!

tags:

Post een reactie

Googleplex #2

10.03.2009 door Mich

tags:

Post een reactie

Googleplex #1

10.03.2009 door Mich

tags:

Post een reactie

eMich world tour: Googleplex

10.03.2009 door Mich

* awesome *

Waar? | tags:

Post een reactie

Residential Mountain View

10.03.2009 door Mich

Heaven...

Waar? | tags:

Post een reactie

Geek joke

09.03.2009 door Mich

Waar? | tags:

Post een reactie

The Great Pacific

09.03.2009 door Mich

Waar? | tags:

Post een reactie

San Francisco sunset

09.03.2009 door Mich

Waar? | tags:

1 reactie(s)

Life is good

09.03.2009 door Mich

Waar? | tags:

1 reactie(s)

Window seat, yay!

07.03.2009 door Mich

Waar? | tags:

Post een reactie

Yes we can!

07.03.2009 door Mich

tags:

Post een reactie

Een kat in een zak!

06.03.2009 door Mich

Iedere reis hetzelfde verhaal. Mij zo proberen tegen te houden.

tags:

1 reactie(s)

Boy Geek Pints

04.03.2009 door Mich

tags:

Post een reactie

Ringa Ringa…

03.03.2009 door Mich - lire la version francophone (3)

Net als de film is de soundtrack van Slumdog Millionaire door A R Rahman een aanrader. Luister er wel niet teveel naar, want sommige liedjes werken aanstekelijk en blijven lang plakken, zoals Ringa Ringa in de video hierboven.

tags: . . . .

Post een reactie

previous