Witam :-)
Mój dawnyyyy art opisujący sposób pobierania tokenów jak i zakładania nowych konta gadu - gadu , przy użyciu GGLite. Nie wiem czy opisywana tutaj metoda jeszcze funkcjonuje ale zawsze to jakaś podstawa do napisania , czegoś własnego . Życzę miłej lektury :-)
1.Pobranie tokena :
1.1. Modyfikacja GGlite
w pierwszej kolejności należy zmodyfikować komponent GGlite o ile nie posiadamy wersji v0.17, w której jest już pobieranie tokena dostosowane do nowych kolorowych obrazków. A więc :
+ przechodzimy do folderu C:Program FilesBorlandDelphi7Lib
+ otwieramy plik gglite.pas
+ znajdujemy funkcje function TGGLite.GGGenerateToken (var TokenId: string; var TokenVal: TStream):integer;
+ modyfikujemy całą funkcje bądź podmieniamy różniące sie wiersze :
tak z modyfikowany komponent GGlite jest gotowy do użycia :-]Kod:function TGGLite.GGGenerateToken(var TokenId: string; var TokenVal: TStream):integer; var PostFields:TStrings; ResponseMsg:string; begin result:=-1; try IdHTTP1.ProtocolVersion:=pv1_0; IdHTTP1.Host:= 'register.gadu-gadu.pl'; IdHTTP1.Request.ContentType:='application/x-www-form-urlencoded'; IdHTTP1.Request.UserAgent:= HTTP_USER_AGENT; IdHTTP1.Request.Pragma := 'no-cache'; PostFields:=TStringList.Create; ResponseMsg:=IdHTTP1.Post('/appsvc/regtoken.asp',PostFields); PostFields.Text:=ResponseMsg; TokenId:=PostFields.Strings[1]; IdHTTP1.ProtocolVersion:=pv1_1; IdHTTP1.Get('http://www.gadu-gadu.pl/register/regRndPict.php?tokenid='+TokenId,TokenVal); // lub w przypadku gdyby kiedyś adres generatora tokenów miał sie zmienić //IdHTTP1.Get(PostFields.Strings[2]+?tokenid='+TokenId,TokenVal); result:=0; except end; end;
1.2. Zaopatrzenie sie w komponent obsługujący pliki graficzne GIF Do pobrania : http://finn.mobilixnet.dk/delphi/gifimaged7c.zip
1.3. Wyświetlanie tokena
Przykładowy kodzik pokazujący jak pobrać prosto ze stream'a (wygenerowany token pobrany z www)
Po kliknięciu na button naszym oczom powinien ukazać sie token, teraz można przejść do zakładania konta...Kod:uses gifimage, jpeg, gglite .....; var tokenid : string; //będzie nam potrzebny do założenia konta procedure TForm1.Button1Click(Sender: TObject); var stream : tstream; gif : tgifimage; begin image1.picture:=nil; //komponent TImage na który załadujemy nasz token tokenid:=''; stream := tmemorystream.create; gglite1.gggeneratetoken(tokenid, stream); //wykorzystanie funkcji które w poprzednim punkcie modyfikowaliśmy application.processmessages; sleep(100); if stream.size <> 0 then begin stream.seek (0, 0); gif := tgifimage.create; gif.loadfromstream(stream); //zamiana stream'a na gif image1.picture.bitmap.assign(gif); //załadowanie gif'a (wygenerowanego tokena) do image'a, dzieki któremu będziemy mogli odczytać text z obrazka application.processmessages; gif.free; stream.free; end; end;
2. Zakładanie konta GG :
z tym nie powinno być problemu gdyż wystarczy dobrze uzupełnić pola niezbędne do utworzenia konta.
I w ten sposób zrobiliśmy prosty program do zakładania kont GG, oczywiście można zrobić to samo bez użycia komponentu GGLite, korzystając z samego IdHTTP, tyle ze przy okazji użycia komponentu GGlite można sprawdzić poprawność założenia konta (logując sie na nie).Kod:procedure TForm1.Button2Click(Sender: TObject); var NewUIN: int; haslo,email,tokentext : string; begin tokentext:=''; NewUIN:=0; haslo:=Edit2.Text; //hasło do naszego konta email:=Edit3.Text; //adres e-mail na który w razie zapomnienia hasła zostanie wysłane przypomnienie tokentext:=Edit1.Text; //text odczytany z tokena Application.ProcessMessages; sleep(100); gglite1.GGCreateNewAccount(haslo,email,TokenID,TokenText,NewUIN); //generowanie numeru Label1.Caption:=inttostr(NewUIN); //załadowanie do labela wygenerowanego numeru GG


Odpowiedź z Cytatem
