Smsy do Idei

0

Witam,

Znalazlem na 4p w dziale delphi/zrodla programik ktory mial wysylac smsy do wszystkich sieci (w tym idei) - ale zapewne byl on napisany w delphi 6 gdzie sa jeszcze sockety, a ja mam delphi 7 wiec program mi nie dziala... :/ i mam wielki problem bo potrzebuje "na gwalt" jakiegos programiku ktory wysylal by smsy do idei (pobieral token, zeby wpisac teks z obrazka itp)... nie zalezy mi na innych sieciach... Nie lubie prosic o gotowe kody ale to jest wyjatkowa sytuacja :-( Baaardzo prosze o pomoc !

ps. moj email: [email protected]

z gory dzieki

<ort>na razie</ort>

0

Zainstaluj sockety :) Sa tam w menu z komponentami wybierz Install component i tam na liscie chyba byly :)

0

no juz zainstalowalem, kodzik dziala ale teraz 2 problem - jest tak zamotany ten kod bo obsluguje 3 sieci ze nie uda mi sie wyciagnac samego slania do idei - szczegolnie ze nie siedzialem e dlphim od prawie 2 lat :-(

0

a ten kod działa ? bo też się spotkałem z takimi kodami ale żaden z nich nie działał poza wysyłaniem do plusa

0

ten kod bo obsluguje 3 sieci ze nie uda mi sie wyciagnac samego slania do idei - szczegolnie ze nie siedzialem e dlphim od prawie 2 lat :-(

Oczekujesz, ze ktos to zrobi za Ciebie i uzyjesz gotowego?
nieladnie

0

na plusa masz kod w faqu, a na idee mogę ci dać za 10 złotych jedyne (ew zrobić jeśli ten co mam już nie działa :P)

0

kurde co sie dzieje na tym swiecie :-( :| kasy <ort>na razie</ort> nie mam :-( jak bym mial to bym ci dal bez problemu, a tak to widzisz :-( :-| chyba ze chcesz za ten kod konto na stronke (jakies przytulne z cpanelem :-) ) to pisz... :-)

0

Cześć

Chyba teraz coś wydłubiesz ;) potrzebny tylko komponent HTTPget

HTTPGetString :THTTPget;

//Pobranie kodu strony WWW
PROCEDURE TForm1.PobierzIDEA;
Begin
 //rozpoczyna proces pobiera kodu strony...
 HTTPGetString.BinaryData:= False;             //ustawia na typ pliku textowego
 HTTPGetString.WaitThread:= False;               //czas oczekiwania - do skutku
 HTTPGetString.FileName:= 'Strona.htm';            //nazwa pliku po ściągnięciu
 HTTPGetString.URL:= 'http://sms.idea.pl/default.aspx';   //pobranie adresu URL
 HTTPGetString.GetString;                        //rozpoczęcie pobierania textu
End;

//Procedura wykonywana po pobraniu kodu strony
PROCEDURE TForm1.HTTPGetStringDoneString(Sender: TObject; Result: String);
var
 sz,poz :Integer;
Begin
 //wyciąganie danych ze ściągnietego kodu strony...
 sz:= length('name="token" value="');             //ustalenie szerokości napisu
 poz:= Pos('name="token" value="',Result) + sz;      //ustalenie pozycji napisu
 nazwaObrazka:= Copy(Result, poz, 36 );  //skopiowanie napisu o szer = 36 liter
 //tu pobiera obrazek o pobranej nazwie
 WebBrowser1.Navigate('http://213.218.116.131/rotate_token.aspx?token='+ nazwaObrazka);
End; //ok.

// Wysłanie danych SMSa do operatora
PROCEDURE TForm1.btnWyslijClick(Sender: TObject);
var
 post :String;
Begin
 //zestawianie zmiennych post...
 Post:=
   'token=' + nazwaObrazka +
   '&RECIPIENT=' + EditNrTelefonu.Text +
   '&SHORT_MESSAGE=' + Memo1.Text +
   '&SENDER=' + EditNadawca.Text +
   '&pass=' + EditKod.Text; //tu wpisujesz kod ze sciagnietego obrazka
 WebBrowser1.Navigate('http://sms.idea.pl/sendsms.aspx?'+ Post);
End;

Możesz inaczej jakoś wysłać powyższe - chodzi tylko o potwierdzenie wysyłki smsa
bo tu powyżej WebBrowserze ukazuje sie stronka potwierdzająca.
Podumaj jak odebrać potwierdzenie - a jak coś dorwiesz to wysyłaj posta jakimś komponentem a nie poporzez WebBropwser ;)

0

dzieki wielkie, zaraz przetestuje...

w TWebBrowser (po odpaleniu procedury pobierzIDEA;) widze komunikat ze podana strona nie istnieje - tam jest takie IP podane ktore niby nie istnieje... co zrobic ?

//a dokladnie to:
500.32 HTTP ERROR Nie kombinuj :) :) - L

0

No ort! jeszcze raz na to co mam i Ci podałem
hmm mnie ściąga strone , pobiera nazwe obrazka i ściąga obrazek.
Jedynie jak podam hasło z obrazka i klikne na wysyłkie SMSa to coś chrzani ;/
odgrzebałem ten kod z zakamarków i jest nieskończony a nie mam teraz czasu
sprawdzać czy coś nie zmienili na Idei
Najważniejsze że masz już wędkę a rybe sam sobie złowisz :)

w TWebBrowser (po odpaleniu procedury pobierzIDEA;) widze komunikat ze podana strona nie istnieje - tam jest takie IP podane ktore niby nie istnieje... co zrobic ?

Przecież procedura pobierzIDEA ściąga kod strony przy pomocy komponentu
HTTPget a nie TWebBrowsera, w niego tylko wczytywałem obrazek który zresztą , jak już sie złoży adres (link z nazwą obrazka) można ściągnąć czymś innym.
Nie wiem czy Cie dobrze zrozumiałem ?

0

no poigrzebe jutro w tym kodze ale watpie ze znajde blad bo od 2 lat nie programowalem w <ort>delphim</ort>...

0

No ja mam swój program do Idei z Delphi 7 - działający oczywiście.
Screen tutaj http://domp.arts.w.interia.pl/idea.JPG

0

No ja mam swój program do Idei z Delphi 7 - działający oczywiście.
Screen tutaj http://domp.arts.w.interia.pl/idea.JPG

Chciales sie pochwalic? czy udowodnic ze jestes zyczliwy jak pies ogrodnika?

0

Ponizej zamieszczam kod do pobierania tokenu i nastepnie wysylania smsa poprzez strone idei http://sms.idea.pl/sendsms.aspx. Niestety w komunikacie zwrotnym dostaje info, ze sms zostal wyslany (Result := odbior.DataString - kod HTML otrzmany po wyslaniu danych), nie dociera on jednak do odbiorcy, nawet gdy wpisze niepoprawny tekst z obrazka i wysle go z innymi danymi tez dostaje informacje ze strony idei ze sms zostal wyslany, ktos wie o co chodzi ???
Kod:

function Tfrm_main.IDEA(ServAddr, QueryStr, DataStr: WideString):WideString;
//ServAddr - adres serwera tu: http://sms.centertel.pl/default_.aspx
//QueryStr - tu puste
//DataStr - tu puste
var
  odbior,nadanie:TStringStream;
  I:byte;
  token: string;
  f: textfile;
  dlg: Tweb_form;
  Res: TModalResult;
//idHttp - komponent INDY
begin
  odbior:=TStringStream.Create('');
  nadanie:=TStringStream.Create('');
  nadanie.WriteString(DataStr);   //wpisujemy pusty znak jako informacje nadawcza
  IdHTTP.Request.contenttype:='application/x-www-form-urlencoded';
  try
    IdHTTP.Post(ServAddr, nadanie, odbior);

     // w odbior otrzymujemy kod html strony z tokenem

    if cbOperator.ItemIndex = 1 then  //moj wewnetrzny warunek - mam tez wysylanie smsow do plusa
    begin
      token := copy(odbior.DataString,Pos('rotate_token.aspx?token=',odbior.DataString)+24,36);
      //przypisanie zmiennej token wartosci tokena z otrzymanego htmla
      
      dlg := web_form.Create(token); //przekazanie tokena do okna z pozniej wyswietlonym obrazkiem
      Res := dlg.ShowModal;    //otwarcie okna z obrazkiem

      if Res = mrCancel then Exit;

      DataStr := 'token='+token+'&SENDER='+
              ed_odkogo.Text+'&RECIPIENT='+
              concat(copy(cb_prefix.Items[cb_prefix.itemindex],5,3),me_numer.Text)+
              '&SHORT_MESSAGE='+ed_test.Text+'&pass='+web_form.ed_pass.Text+
              '&wyslij=Wy%B6lij';

//zmiennej DataStr przypisujemy parametry do przeslania smsa
//web_form.ed_pass.Text - to tekst z obrazka

      nadanie.WriteString(DataStr);
      IdHTTP.Request.contenttype:='application/x-www-form-urlencoded';
      ServAddr := 'http://sms.idea.pl/sendsms.aspx';
      IdHTTP.Post(ServAddr, nadanie, odbior);

    end;

      Result := odbior.DataString;


  except on E:Exception do begin ShowMessage('Problemy z połączeniem!!!'+E.Message)end;end;

    IdHTTP.Disconnect;
    FreeAndNil(dlg);
    nadanie.free;
    odbior.free;
end;

</b>
0

na googleach bylo cos takiego :)
oto kod a raczej caly unit dla tokena:

unit token_unit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdHTTP, StdCtrls, Buttons, OleCtrls, SHDocVw, Menus, ExtCtrls,
  TFlatEditUnit;


type
  TForm2 = class(TForm)
    WebBrowser1: TWebBrowser;
    IdHTTP1: TIdHTTP;
    BitBtn1: TBitBtn;
    Timer1: TTimer;
    kod: TFlatEdit;
    procedure BitBtn1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure WebBrowser1DocumentComplete(Sender: TObject;
      const pDisp: IDispatch; var URL: OleVariant);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Scroll:Integer;
  Form2: TForm2;
   odbior,odbior1,nadanie : TStringStream;
       zaw : string;
       token,s,url : string;
       i : integer;
implementation

uses panel_glowny, testy;

{$R *.dfm}

procedure TForm2.BitBtn1Click(Sender: TObject);
begin
IF KOD.Text<>'' THEN BEGIN
zaw:=form1.tresc.text;
       for i:=1 to length(zaw) do
       if zaw[i]=' ' then zaw[i]:='+';
       nadanie.WriteString( 'token='+token+
       '&SENDER='+form1.podpis.Text+
       '&RECIPIENT='+form1.Numer.text+
       '&SHORT_MESSAGE='+zaw+
       '&pass='+kod.Text+
       '&CHK_RESP=FALSE&respInfo=1');
       IdHTTP1.Request.contenttype:='application/x-www-form-urlencoded';
       IdHTTP1.Request.Referer:='http://sms.idea.pl';
       try
      IdHTTP1.Post('http://213.218.116.131/sendsms.aspx',nadanie,odbior);
      idhttp1.Get('http://213.218.116.131/sendsms.aspx',odbior); //<-zastosować możnagdy 
chce się mieć pewność dostarczenia sms'a.
             except
       on exception do
       begin
       showmessage('Wystąpiły problemy z połączeniem!');
       end else form1.status.Caption:='brak hasla tokena sprobuj ponownie!!!'
       end;
//form1.status.Caption:=
idhttp1.Get('http://213.218.116.131/sendsms.aspx',odbior); //<-zastosować możnagdy chce się 
mieć pewność dostarczenia sms'a.

if pos('Twój SMS został wysłany.',odbior.DataString)<>0 then form1.status.caption:='SMS 
DOSTARCZONY'
else if pos('Podano błędne hasło, SMS nie został wysłany',odbior.DataString)<>0 then 
form1.status.Caption:='BLEDNY TOKEN'
ELSE IF POS('Z Bramki SMS możesz wysyłać wiadomości tylko do Użytkowników sieci Idea. SMS 
nie został wysłany',ODBIOR.DataString)<>0 THEN FORM1.status.Caption:='ZLY NUMER. PODAJ 
NUMER SIECI IDEA'
ELSE IF POS('Użytkownik nie ma aktywnej usługi E-mail SMS STANDARD, SMS nie został wysłany',
 ODBIOR.DataString)<>0 THEN FORM1.status.Caption:='Użytkownik nie ma aktywnej usługi E-mail 
SMS STANDARD'
ELSE IF POS('Przysługujący odbiorcy limit krótkich wiadomości tekstowych,przesyłanych w 
ciągu doby został wyczerpany, SMS nie został wysłany',ODBIOR.DataString)<>0 THEN 
FORM1.status.Caption:='PRZEKROCZONY LIMIT BRAMKI'
ELSE FORM1.status.Caption:='SMS NIE ZOSTAL WYSLANY';
form1.tresc.Text:='';
end ELSE IF KOD.Text='' THEN FORM1.status.Caption:='BRAK KODU TOKENA, SMS NIE ZOSTAL 
WYSLANY';
END;

procedure TForm2.FormShow(Sender: TObject);
begin
odbior:=TStringStream.Create('');
       odbior1:=TStringStream.create('');
       nadanie:=TStringStream.Create('');
       form2.IdHTTP1.Request.referer:='sms.idea.pl';
       form2.IdHTTP1.Request.contenttype:='application/x-www-form-urlencoded';
       form2.IdHttp1.get('http://213.218.116.131',odbior);
       token := Copy(odbior.DataString, Pos('token=',odbior.DataString)+6,100);
       token := Copy(token, 1, Pos('"', token)-1);
       s:=token;
       url:=('http://213.218.116.131/rotate_token.aspx?token='+s);
       try
          WebBrowser1.Navigate(url);
//kod.Text:=url;
       Except
       showmessage('Wystąpił błąd podczas wczytywania obrazka Idei!');
end;
end;

procedure TForm2.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin

webbrowser1.OleObject.Document.Body.Style.OverflowX := 'hidden';
webbrowser1.OleObject.Document.Body.Style.OverflowY := 'hidden';
webbrowser1.OleObject.document.body.leftmargin:='0';
webbrowser1.OleObject.document.body.rightmargin:='0';
webbrowser1.OleObject.document.body.topmargin:='0';
webbrowser1.OleObject.document.body.bottommargin:='0';
end;



procedure TForm2.Timer1Timer(Sender: TObject);
var
     I:Integer;
     S,ScrollText:String;
Begin
     ScrollText:='          THIS IS A SENDSMS          ';
     Inc(Scroll);
     If Scroll>Length(ScrollText)-10 then
        Scroll :=0;
     For I:=1 to 200 do
         S:=S+ScrollText[I+Scroll];
     Form2.Caption:=S;
     Application.Title:=S;

end;

end.

Mozecie mnie skarcic ale nie chcialo mi sie wklejac procedur :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1