Facebook api in python giovedì, Lug 9 2009 

Le api di facebook sono disponibili anche per python. Non si tratta di librerie supportate ufficialmente ma funzionano. La prima operazione è  quindi  quella di procurarsi le librerie per python scaricandole da http://github.com/sciyoshi/pyfacebook/tree/master .

Non è necessario installare tutto il pachetto, l’unico file che interessa è contenuto nella subdir facebook/ ed è __init__.py che si puo’ rinominare in facebook.py e copiare in una directory da includere nel PYTHONPATH.

Fatto questo non rimane che aggiungere al proprio account Facebook l’applicazione Facebook Developper e creare la prima applicazione specificando che si tratta di una applicazione desktop. Durante il processo verranno fornite dalla piattaforma facebook due stringhe alfanumeriche: la ‘api_key’ e la ‘secret_key’ che sono necessarie per autenticare l’applicazione e farla accedere ai dati del vostro profilo e di quello dei vostri amici. Istruzioni più dettagliate si trovano all’indirizzo http://wiki.developers.facebook.com/index.php/Creating_your_first_application

Ecco di seguito un piccolo pezzo di codice che accede all’account facebook, scarica delle informazioni sui vostri amici e le salva in file binario attraverso il modulo pickle di python.

api_key = <api_key ottenuta da fb>
secret_key = <la secret_key ottenuta da fb>
fb = Facebook(api_key, secret_key)
fb.auth.createToken()
fb.login(popup=True)
fb.auth.getSession()

# array delle uid degli amici
friends = fb.friends.get()
# hash di info
friends = fb.users.getInfo(friends, ['name', 'birthday', 'relationship_status','sex','uid'])
# salva i dati
with open('friends.dat','w') as f:
    pickle.dump(friends, f)

I dati vengono salvati nel file ‘friends.dat’ e si possono ricaricare sempre utilizzando il module pickle per processarli comodamente.

with open(‘friends.dat’,’r’) as f:
friends = pickle.load(f)
with open('friends.dat','r') as f:
    friends = pickle.load(f)
Annunci

Condividere Mail tra Linux e Windows con Thunderbird sabato, Lug 4 2009 

Se siete come me e vi capita spesso di utilizzare entrambi i sistemi operativi ma volete avere un unico posto dove conservare tutte le email allora questa procedura vi sarà utile. Ovviamente la procedura funziona per me ed è possibile che abbia commesso qualche errore o che ci siano delle inesattezze oltre al fatto che accedere in r/w alle partizioni Win come è richiesto dalla procedura comporta sempre un certo margine di rischio.

L’idea è quellla di conservare la posta su una partizione NTFS accessibile da entrambi i sistemi e adattare la configurazione di thunderbird su linux modificando il file prefs.js.

Come prima cosa dovete poter accedere in r/w alla partizione Win dove sono memorizzate le vostre email, se non avete modificato nulla nella configurazione standard di Thunderbird la partizione sarà quella di installazione del sistema operativo e quindi molto probabilmente la classica C:. I dettagli riguardo l’accesso in r/w alle partizioni NTFS probabilmente variano da distro a distro ma grossomodo occorre solo inserire una stringa al file /etc/fstab, per questo conviene fare riferimento a fstab(5) e alla documentazione propria della distro.

Sotto Win Thunderbird conserva le email e i file di configurazione relativi ai profili in %APPDATA%/Thunderbird/Profiles. Su Linux invece le dir dei profili  si trovano in $HOME/.thunderbird/.

Se avete un solo profilo troverete all’interno della subdir Profiles una sola cartella il cui nome sarà <codice>.default dove codice è una stringa alfanumerica generata da thunderbird durante la creazione del profilo. Il file che ci interessa è il prefs.js contenuto nella subdir in questione.

Il tutto consiste nel creare in ~/.thunderbird una cartella di profilo il cui nome sia lo stesso di quella windows e copiarci all’interno il file prefs.js proveniente da windows e modificare i path all’interno del file in modo da adattarli alla notazione unix. Nella pratica si dovranno sostituire le occorrenze delle stringhe C:\\Documents and Settings\\… con il percorso unix corrispondente ad esempio /mnt/win/C/Documents and Settings/… se la partizione C viene montata sotto /mn/win/C. Si dovranno anche cancellare le righe contenenti la stringa ProfD perchè tanto si tratta di path generati automaticamente.

L’ultimo passo da fare è assicurarsi che il file ~/.thunderbird/profiles.ini punti al profilo corretto ovvero che la variabile Path contenuta all’interno abbia come valore il nome della dir di profilo.

A questo punto tutto dovrebbe funzionare e dovreste essere in grado di accedere alle email da entrambi i sistemi operativi.