Monday 10 November 2008

Hi5 api & Me

Saptamana trecuta cred ca am fost una din persoanele care si-au petrecut cel mai mult timp pe hi5:) Dar am avut o scuza buna: implementarea primei teme de casa de la Interfete Evoluate.

Nu are rost sa mai spun ce poti face cu un API de genul asta, deoarece este amintit intr-un articol scris de colegul meu micvs.

O sa incep prin a spune care a fost partea cea mai dificila pentru mine: sa ma hotarasc ce anume sa folosesc din oferta de API-uri: o librarie deja implementata in JAVA sau partea de REST.
Am incercat la inceput sa folosesc libraria de Java, care promitea sa poata extrage informatii despre profilul unui utilizator, lista de prieteni si comentariile pe care acesta le primise - deci cam tot ce imi trebuia ca sa fac tema. Dupa ce: am facut rost de un application key, am downloadat .jar -urile pentru partea de client + toate celelalte n-spe librarii de care depindea partea de client java am trecut la scrisul primelor linii de cod:
AuthApiImpl auth = new AuthApiImpl();
AuthToken token = auth.auth_plain(app_key, my_email_add, my_password);
am primit o eroare cu de 10X mai multe linii decat ce scrisesem eu :((.

Dupa ce am google-uit cat de mult am putut si am cautat pe forum-uri, singura concluzie la care am ajuns a fost ca : there was something wrong with xfire jar. Asa ca m-am decis sa trec la cealalta solutie, folosind partea de REST si FOAF.

REST este un model folosit pentru a accesa un set de resurse printr-un set de operatii. De fapt notiunea de resursa este strans legata de REST. Fiecare resursa este adresata folosind un anumit identificator, iar pentru a manipula aceste resurse, partile componente ale unei retele ( atat clientii cat si serverele) comunica folosind o interfata standardizata(ex. http) si schimba intre ele reprezentari ale acestor resurse. Cand vorbim de hi5, resursele la care ne putem referi, sunt: widget-uri, albume de poze, fotografiile dintr-un album, lista de prieteni ai unui utilizatori, informatii generale despre un anumit profil etc...

Inconvenientul la aceasta metoda de a culege informatii despre un anumit utilizator este ca, cel putin pentru moment, API-ul de hi5 nu permite, folosind REST, adunarea informatiilor cu privire la comentariile adresate unui anumit profil/journal entry/unei fotografii...
Am pomenit mai sus de FOAF (Friend of a Friend) - care este un proiect ce isi propune adoptarea unei tehnologii necentralizare de conectare a site-urilor cu caracter social, dar si a utilizatorilor acestora. FOAF urmareste dezvoltarea unui web in care paginile sa fie organizate astfel incat sa faca legatura intre persoane si ceea ce le defineste- ce stiu sa faca, ce prieteni au etc...

URI-ul pe care l-am folosit in tema pentru a extrage informatiile cu privire la prietenii unui utilizator a fost: http://api.hi5.com/rest/profile/foaf/user_id .Daca vreti puteti face un test cu id-ul meu: http://api.hi5.com/rest/profile/foaf/9423817 :P

Notiunile de mai sus sunt cele de care m-am "lovit" eu in dezvoltarea temei, si pot spune ca (si) de data asta partea cea mai .... nu neaparat grea cat lunga am dedicat-o gasirii tehnologiei pe care sa o folosesc in dezvoltarea temei.

2 comments:

Unknown said...

Salut,
Mi-am facut si eu o mica aplicatie in PHP pentru a importa de pe hi5 datele profilul meu.

Am nevoie sa folosesc metoda profile/xpt (REST API). Aceasta metoda primeste ca parametru encrypted id. Ai idee cum as putea obtine acest id?

Gia said...

daca nu ai gasit deja o solutie, incearca sa arunci o privire la linkul de mai jos. eu am incercat sa evit folosirea de text criptat sau de autentificare in tema, dar poate gasesti ceva care sa te ajute: www.cs.virginia.edu/felt/privacybyproxy.pdf