July 2008

lista.lu – oka: code release pentru autentificare Google si Yahoo!

oka (prescurtarea de la One ClicK Authentication) este codul din spatele http://lista.lu care se ocupă de autentificarea Google şi Yahoo!. Este o componentă CakePHP lansată la cererea fanilor ;) .

Ideea care stă în spatele oka este delegarea autentificării către Google şi Yahoo!, niste autorităţi de încredere, astfel încat utilizatorul să nu mai fie nevoit să îşi aducă aminte un alt nume de utilizator şi o altă parolă; tot ce trebuie să facă este să urmeze un link spre autentificare. Metoda este o alternativă la OpenID, un standard pentru delegarea autentificării. Am scris mai multe despre delegarea autentificarii aici.

Codul l-am facut public, la adresa: http://code.google.com/p/oka/.

Info-spot
Proiecte
lista.lu

Comments (0)

Permalink

Cum se face un robotel pentru messenger :)

Cum se face un robotel pentru messenger ? (avertisment: articol tehnic)

Primul raspuns: foarte simplu – exista deja niste biblioteci care abstractizeaza protocolul, dupa care tu te gandesti ce vrei sa faca&zica robotelul, implementezi, te distrezi vorbind cu el, gata.

Raspunsul mai detaliat
E bazat pe faptul ca noi am ales Java pentru implementare (multithreading usor, exista biblioteci si pentru Yahoo! si Google) si contine sfaturi iesite din experienta si cautarile noastre. :)

Yahoo!
Protocolul pentru Yahoo! Messenger este proprietar Yahoo!, insa exista un suflet nobil care a facut reverse engineering pe protocol si a creat proiectul jYMSG.

Dat fiind ca protocolul e proprietar, proiectul se ‘tine’ de modificarile facute de Yahoo! cu o latenta (relativ mica) – de ex versiunea 0.6.0 pe care am incercat-o prima oara nu reusea sa faca login. Versiunea 0.6.4 este mult mai compatibila, singurele problemutze pe care le-am gasit noi fiind

  • timeout-ul la thread-ul de mentinere a conexiunii in cazul in care lumea ‘tace’ – era facut sa trimita un mesaj de keepalive o data la 20 minute, pe cand Yahoo! inchide conexiunea dupa 10 (fix: Session.java -> private class PingThread -> public int time = 1000*60*8; in loc de public int time = 1000*60*20; bineinteles, numarul asta ar putea sa fie undeva intr-un fisier de configurare)
  • faptul ca protocolul nu este implementat bine pentru partea de acceptat cererile de “add friend” – nu am apucat sa sapam indeajuns cat sa vedem cum se corecteaza
  • aranjamentul surselor din pachetele oferite nu e acelasi cu declaratiile de clase – prin urmare IDE-urile clasice protesteaza si nu vor sa le compileze :)

Ca mod de lucru, clasa STest\SwingTestClient.java ofera un model bun de cum se foloseste partea de protocol – scotand tot ce tine de interfata obtii o implementare de protocol.

GTalk

La GTalk este mult mai simplu – protocolul folosit este Jabber pentru care am gasit o biblioteca foarte buna – smack de la Ignite Realtime.

Parametrii de conectare pentru GTalk sunt:
ConnectionConfiguration config = new ConnectionConfiguration(“talk.google.com”, 5222, “gmail.com”);

dupa care daca pui un PacketListener pe conexiune ai rezolvat daraua.

Cititi aici despre robotelul nostru pentru lista.lu.

irina

Info-spot
Proiecte
lista.lu

Comments (1)

Permalink

Lista.lu – un robotel pentru uituci

me:  parazapezi – lui Cristi

lista.lu:  in ce lista sa adaug? (poti scrie doar o parte din numele listei)

- baruri-cu-fussball-din-bucuresti
- chestii-pe-care-le-am-freecycle-uit
- centre-reciclare-baterii-in-bucuresti

- ce-vreau-de-la-ikea
.nume-lista (pt o lista noua)
.     (ca sa nu adaug la nici o lista)

me:  .echipament de munte imprumutat

lista.lu:  ok! am creat lista de echipament de munte imprumutat

me:  pelerina – andreea

lista.lu:  in ce lista sa adaug? (poti scrie doar o parte din numele listei)
- echipament-de-munte-imprumutat
- lista—inainte-de-beta
- baruri-cu-fussball-din-bucuresti
- uau
- demo-ui
- chestii-pe-care-le-am-freecycle-uit
- centre-reciclare-baterii-in-bucuresti
- ce-vreau-de-la-ikea
.nume-lista (pt o lista noua)
.     (ca sa nu adaug la nici o lista)

me:  munte

lista.lu:  Ok! Am adaugat la lista de echipament-de-munte-imprumutat!

Cam asa arata in momentul asta interactiunea cu robotelul pentru lista.lu care sta pe messenger si asteapta ca userii sa vorbeasca cu el. Cazul optim de folosire este atunci cand, in mijlocul vreunei trebi, iti aduci aminte de ceva si vrei sa salvezi ideea. Deschizi un mesaj catre robotel, ii spui ce vrei sa adaugi si el te intreaba in ce lista sa puna chestia respectiva (sau daca vrei sa creezi o lista noua).

Userul de Yahoo! Messenger – pentru conturile facute cu autentificare Yahoo! – este lista.lu test_pentru_lista , si inca nu stie sa raspunda la cererile de add friend. Puteti sa-i scrieti de aici.

Userul pentru conturile facute cu autentificare Google este lista.lu@gmail.com – asta stie sa raspunda la cererile de add friend, si, mai mult, ca sa poti vorbi cu el trebuie sa il adaugi la lista de contacte (in GMail – din campul de text de deasupra contactelor din chat):

irina

Proiecte
lista.lu

Comments (3)

Permalink