نمایش نتایج 1 تا 14 از 14

نام تاپیک: LogIn شدن به Yahoo Messenger با دلفی

  1. #1

    LogIn شدن به Yahoo Messenger با دلفی

    با سلام خدمت همه دوستان عزیز

    پیرو درخواست یکی از دوستان جهت معرفی مقاله یا کامپوننتی برای کار با پیامگیر یاهو اینجانب جستجو کردم و این مقاله رو که به همراه یک کد کامل جهت برقراری ارتباط با پیامگیر یاهو هستش رو به شرح ذیل پیدا کردم:

    امید است که مفید واقع شود .

    I recently came across a plethora of implementations of instant messaging protocols in C, C++‎ but no implementation on pascal so i decided to try to implement one so I decided to start with the yahoo messenger one (ICQ is too complicated for me)

    The protocol used by yahoo is very extensive, this article covers how to login to yahoo messenger server, get buddy list, ignore list and wheter the user has mail or not, this is still very beta (it is just me working on it, so progress is very slow)

    In order to implement this code you will need the Indy Internet Library or any internet library with an HTTP component that you know how to use.


    <-------------------------------BEGIN UNIT CODE ------------------------------>
    unit YahooLogin;

    interface

    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    StdCtrls, ExtCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
    IdTCPClient, IdHTTP, idGlobal;

    type
    TForm1 = class(TForm)
    HTTP: TIdHTTP;
    Panel1: TPanel;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Button1: TButton;
    ListBox1: TListBox;
    Label3: TLabel;
    ListBox2: TListBox;
    Label4: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    private
    { Private declarations }
    FRemoteFile: TStringList;
    public
    { Public declarations }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.DFM}

    const
    LoginURL = 'http://msg.edit.yahoo.com/config/ncclogin?&n=1&login=%s&passwd=%s';

    procedure TForm1.Button1Click(Sender: TObject);
    var
    Tmp, UserName, Password: String;
    i, BuddyBegin, BuddyEnd: Integer;
    begin
    if (Edit1.Text = '') or (Edit2.Text = '') then
    raise Exception.Create('Login/Password cannot be blank');

    UserName := URLEncode(Edit1.Text);
    PassWord := URLEncode(Edit2.Text);
    Tmp := Format(LoginURL, [UserName, PassWord]);

    FRemoteFile.Text := Http.Get(Tmp);

    if FRemoteFile[0] = 'OK' then
    begin
    for i := 0 to HTTP.Response.ExtraHeaders.Count -1 do
    if pos('Set-Cookie', HTTP.Response.ExtraHeaders[i]) > 0 then
    begin
    //We only care about the first cookie
    ShowMessage('Received Cookie: '+ Copy(HTTP.Response.ExtraHeaders[i], Length('set0cookie.'), Length(HTTP.Response.ExtraHeaders[i]&# 41;));
    //So we break after getting the first cookie
    Break
    end;

    //Buddy list is delimited by a BEGIN BUDDYLIST and END BUDDYLIST
    BuddyBegin := FRemoteFile.IndexOf('BEGIN BUDDYLIST') +1;
    BuddyEnd := FRemoteFile.IndexOf('END BUDDYLIST') -1;

    for i := BuddyBegin to BuddyEnd do
    //These is the "raw" buddy list parsing is needed for it to make sense
    //Since this is an example I discarded this code
    ListBox1.Items.Add(FRemoteFile[i]) ;

    BuddyBegin := FRemoteFile.IndexOf('BEGIN IGNORELIST') +1;
    BuddyEnd := FRemoteFile.IndexOf('END IGNORELIST') -1;

    for i := BuddyBegin to BuddyEnd do
    ListBox2.Items.Add(FRemoteFile[i]) ;

    for i := 0 to FRemoteFile.Count -1 do
    if pos('Mail=', FRemoteFile[i]) > 0 then
    begin
    Tmp := Copy(FRemoteFile[i], length('mail01'), Length(FRemoteFile[i]));
    if StrToInt(Tmp) = 1 then
    ShowMessage('You have a yahoo mail account')
    else
    ShowMessage('You dont have a yahoo mail account');
    Break;
    end;
    end else
    raise Exception.Create('Couldnt log you on');
    end;

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    FRemoteFile := TStringList.Create;
    end;

    end.
    <-----------------------------END UNIT CODE--------------------------------->

    <-----------------------------BEGIN FORM CODE------------------------------->
    object Form1: TForm1
    Left = 192
    Top = 121
    Width = 379
    Height = 443
    Caption = 'Form1'
    Color = clBtnFace
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -13
    Font.Name = 'MS Sans Serif'
    Font.Style = []
    OldCreateOrder = False
    OnCreate = FormCreate
    PixelsPerInch = 120
    TextHeight = 16
    object Label3: TLabel
    Left = 16
    Top = 136
    Width = 65
    Height = 16
    Caption = 'Buddys list'
    end
    object Label4: TLabel
    Left = 194
    Top = 138
    Width = 64
    Height = 16
    Caption = 'Ignore lists'
    end
    object Panel1: TPanel
    Left = 11
    Top = 3
    Width = 342
    Height = 113
    TabOrder = 0
    object Label1: TLabel
    Left = 11
    Top = 24
    Width = 63
    Height = 16
    Caption = 'Username'
    end
    object Label2: TLabel
    Left = 11
    Top = 56
    Width = 60
    Height = 16
    Caption = 'Password'
    end
    object Edit1: TEdit
    Left = 94
    Top = 18
    Width = 233
    Height = 24
    TabOrder = 0
    end
    object Edit2: TEdit
    Left = 96
    Top = 51
    Width = 233
    Height = 24
    TabOrder = 1
    end
    object Button1: TButton
    Left = 139
    Top = 82
    Width = 75
    Height = 25
    Caption = 'Login'
    TabOrder = 2
    OnClick = Button1Click
    end
    end
    object ListBox1: TListBox
    Left = 15
    Top = 160
    Width = 171
    Height = 239
    ItemHeight = 16
    TabOrder = 1
    end
    object ListBox2: TListBox
    Left = 192
    Top = 160
    Width = 171
    Height = 239
    ItemHeight = 16
    TabOrder = 2
    end
    object HTTP: TIdHTTP
    Request.Accept = 'text/html, */*'
    Request.ContentLength = 0
    Request.ContentRangeEnd = 0
    Request.ContentRangeStart = 0
    Request.ProxyPort = 0
    Request.UserAgent = 'Mozilla/4.6 (compatible; Indy Library)'
    Left = 320
    Top = 48
    end
    end
    <-----------------------------END FORM CODE ------------------------------->

    If anyone want to help me in the implementation of the yahoo protocol, please send me an email with the subject YahooLIB.pas, the source of this code is based upon the works of LibYahoo an open source implementation of the protocol in C, C++‎

    موفق باشید . :wink:

  2. #2
    پیشنهاد میکنم حتما اینجا رو یک نگاه بندازید !
    http://www.chat-help.co.uk/~ymlite/
    من خودم با استفاده از Source این برنامه فسقلی تونستم یکYahoo Robot بنویسم که کاملا قابل برنامه ریزی هست !
    فکر کنم URL ش اینجاست !
    http://homepages.ihug.com.au/~cjdelp...itecompact.zip

    ارادتمند مشاطان

  3. #3
    دوست عزیز . متاسفانه دانلود نمیشه . :cry:

  4. #4
    ای بابا نا امید نباش :)
    من قبلا گرفتم الان گذاشتم روی Host م میتونی دریافت کنی !
    http://ams.free-host.com/delphi/ymlitecompact.zip
    در ضمن با KOL نوشته شده و ممکنه کداش یکی عجیب غریب باشه باید زیاد باهاش ور بری .

    ارادتمند مشاطان

  5. #5
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran - Tehran
    پست
    799
    سلام.
    میشه یه آدرسی از این کامپوننت های KOL رو بدید .من به سایت شرکت سازنده هم رفتم ولی کامپوننت هایی رو که در برنامه ازشون استفاده شده بود رو نتونستم پیدا کنم !!؟
    ممنون. :roll:

  6. #6
    خوب اول سایتش رو بگم که اینجاست !
    http://bonanzas.rinet.ru
    بدم اینکه باید یک Define به اسم KOL_MCK وجود داره که با حذف اون از TForm استفاده میکنه ولی با این وجود باید Component های MCK رو حتما نصب کنید !! :wink:
    در هر صورت پیشنهاد میکنم چون KOL در Design بکار رفته ، بهتره دستی خودتون کد های مربوط به Login شدن Yahoo رو بیرون بکشید ! که خیلی ساده هست در ضمن این فقط برای Chat هست و اگر میخواید PM ها Invisible و ... سایر امکاناتش رو بکار بگیرید باید با یک Sniffer خود Yahoo Messenger رو Monitor کنید تا کد ها شو بدست بیارید !

    ارادتمند مشاطان

  7. #7
    اگه میشه یک لینک هم برا این مورد بزار :))

    راستی با اگزه خودش هم نتونستم به یاهو وصل بشم )):
    تاحالا فقط اون سورسی که از طریق وب به یاهو وصل میشده خوب بهم جواب داده ...

    پیوست :
    از نامه های باحالت ممنون خیلی داره کمک میکنه @ دمت خیلی گرم

  8. #8
    من قسمت Login شدن به yahoo رو که قبلا نوشته بودم اینجا قرار دادم !
    http://ams.free-host.com/delphi/Yahoo.zip
    و میتونید استفاده کنید این فقط Login میکنه و Status رو عوض میکنه !
    در ضمن باید کامپوننت ICS - Internet Component Suite رو دریافت کنید
    و آدرسش اینجاست !
    http://www.overbyte.be
    http://www.rtfm.be/fpiette/indexuk.htm
    http://users.swing.be/francois.piette/indexuk.htm
    اگر اینجا ها نتونستید Download کنید توی Torry.net حتما میتونید :)

    این اولین برنامه تستی بود که باهاش وصل شدم به Yahoo برای همین زیاد ترو تمیز نیست
    امیدوارم بدردت بخوره !

    اراتمند مشاطان

  9. #9
    حاج علی سلام
    من هرچه قدر سعی کردم این فایل هارو دانلود کنم نتونستم
    :cry:

    من قسمت Login شدن به yahoo رو که قبلا نوشته بودم اینجا قرار دادم !
    http://ams.free-host.com/delphi/Yahoo.zip
    من قبلا گرفتم الان گذاشتم روی Host م میتونی دریافت کنی !
    http://ams.free-host.com/delphi/ymlitecompact.zip
    در ضمن با KOL نوشته شده و ممکنه کداش یکی عجیب غریب باشه باید زیاد باهاش ور بری .
    واسه دانلود کردنشون التماس دعا دارم. :oops: :oops: :wink:

  10. #10
    البته الان نزدیک یک سال هست که این بحث شروع شده ولی من خیلی علاقه مند به این کارم .

  11. #11
    این لینک ها که گذاشته شده اصلا کار نمی کنه
    جواب نمیده

  12. #12
    کاربر دائمی آواتار jirjirakk
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    wwwroot
    پست
    660
    جناب اوراکل من در سطح خیلی کوچک این کار رو انجام دادم

    اول از همه احتیاج به یک اسنیفر داری که پکت های ارسالی یاهو مسنجر رو برای حالت های مختلف اسنیف کنی
    و پترن هر کدومشون رو بدست بیاری تا بتونی یه همچین کارایی بکونی

    برای لوگین شدنش هم یکی از این بیگانه ها زحمت نوشتن دی ال ال رو کشیدن و میتونید با اون به اندرون یاهو لوگین کنید و ..........

  13. #13
    کاربر دائمی آواتار jirjirakk
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    wwwroot
    پست
    660
    یه نیمچه سورس هم دارم اگه خواستی بگو تو بک آپ هام دنبالش بگردم ببینم هست یا نه

  14. #14
    یکی از این بیگانه ها زحمت نوشتن دی ال ال رو کشیدن و میتونید با اون به اندرون یاهو لوگین کنید
    جناب جیرجیرک می تونید در این مورد بیشتر توضیح بدهید و در ضمن علاقمند به یک Example و خود دی ال ال هم هستم که اسمش رو بدونم.

تاپیک های مشابه

  1. یه چیزی شبیه صفحه Yahoo Messenger
    نوشته شده توسط iman_Delphi7 در بخش کامپوننت های سایر شرکت ها، و توسعه کامپوننت
    پاسخ: 13
    آخرین پست: شنبه 29 اردیبهشت 1386, 21:20 عصر
  2. log in شدن به yahoo messenger
    نوشته شده توسط tactools در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 1
    آخرین پست: شنبه 29 اردیبهشت 1386, 09:13 صبح
  3. دزدیدن و استفاده از yahoo messenger & Yahoo Email
    نوشته شده توسط SReza1 در بخش امنیت در شبکه
    پاسخ: 12
    آخرین پست: یک شنبه 12 مهر 1383, 07:22 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •