public virtual async Task DownloadFileFromWrongLocationTest() { TelegramClient client = this.NewClient(); TelegramAuthModel authModel = new TelegramAuthModel() { ApiId = this.ApiId, ApiHash = this.ApiHash }; await client.AuthenticateAsync(authModel); TeleSharp.TL.Contacts.TLContacts result = await client.GetContactsAsync(); TLUser user = result.Users .OfType <TLUser>() .FirstOrDefault(x => x.Id == 5880094); TLUserProfilePhoto photo = ((TLUserProfilePhoto)user.Photo); TLFileLocation photoLocation = (TLFileLocation)photo.PhotoBig; TeleSharp.TL.Upload.TLFile resFile = await client.GetFile(new TLInputFileLocation() { LocalId = photoLocation.LocalId, Secret = photoLocation.Secret, VolumeId = photoLocation.VolumeId }, 1024); TLAbsDialogs res = await client.GetUserDialogsAsync(); Assert.IsTrue(resFile.Bytes.Length > 0); }
/// <summary> /// 연락처를 가져 온다. /// </summary> /// <returns></returns> public async Task <DataTable> ContactsGet() { isAuth(true); //연락처를 받아 온다 TeleSharp.TL.Contacts.TLContacts rst = await client.GetContactsAsync(); if (_contacts == null) { _contacts = Fnc.DataTable_SchemaByObject("TelegramContacts", new TLUser()); } _contacts.Rows.Clear(); //DataRow dr; Fnc.DataTable_InsDataFromObject(_contacts, rst.users.lists); //foreach (TLUser u in rst.users.lists) //{ // dr = _contacts.NewRow(); // Fnc.DataRow_InsDataFromObject(dr, u); // _contacts.Rows.Add(dr); //} return(_contacts); }
public virtual async Task SendBigFileToContactTest() { TelegramClient client = this.NewClient(); TelegramAuthModel authModel = new TelegramAuthModel() { ApiId = this.ApiId, ApiHash = this.ApiHash }; await client.AuthenticateAsync(authModel); TeleSharp.TL.Contacts.TLContacts result = await client.GetContactsAsync(); TLUser user = result.Users .OfType <TLUser>() .FirstOrDefault(x => x.Phone == this.NumberToSendMessage); TLInputFileBig fileResult = (TLInputFileBig)await client.UploadFile("some.zip", new StreamReader("<some big file path>")); await client.SendUploadedDocument( new TLInputPeerUser() { UserId = user.Id }, fileResult, "some zips", "application/zip", new TLVector <TLAbsDocumentAttribute>()); }
public virtual async Task SendMessageByUserNameTest() { this.UserNameToSendMessage = ConfigurationManager.AppSettings[nameof(this.UserNameToSendMessage)]; if (string.IsNullOrWhiteSpace(this.UserNameToSendMessage)) { throw new Exception($"Please fill the '{nameof(this.UserNameToSendMessage)}' setting in app.config file first"); } TelegramClient client = this.NewClient(); TelegramAuthModel authModel = new TelegramAuthModel() { ApiId = this.ApiId, ApiHash = this.ApiHash }; await client.AuthenticateAsync(authModel); TeleSharp.TL.Contacts.TLFound result = await client.SearchUserAsync(this.UserNameToSendMessage); TLUser user = result.Users .Where(x => x.GetType() == typeof(TLUser)) .OfType <TLUser>() .FirstOrDefault(x => x.Username == this.UserNameToSendMessage.TrimStart('@')); if (user == null) { TeleSharp.TL.Contacts.TLContacts contacts = await client.GetContactsAsync(); user = contacts.Users .Where(x => x.GetType() == typeof(TLUser)) .OfType <TLUser>() .FirstOrDefault(x => x.Username == this.UserNameToSendMessage.TrimStart('@')); } if (user == null) { throw new System.Exception("Username was not found: " + this.UserNameToSendMessage); } await client.SendTypingAsync(new TLInputPeerUser() { UserId = user.Id }); Thread.Sleep(3000); await client.SendMessageAsync(new TLInputPeerUser() { UserId = user.Id }, "TEST"); }
public virtual async Task DownloadFileFromContactTest() { TelegramClient client = this.NewClient(); TelegramAuthModel authModel = new TelegramAuthModel() { ApiId = this.ApiId, ApiHash = this.ApiHash }; await client.AuthenticateAsync(authModel); TeleSharp.TL.Contacts.TLContacts result = await client.GetContactsAsync(); TLUser user = result.Users .OfType <TLUser>() .FirstOrDefault(x => x.Phone == this.NumberToSendMessage); TLInputPeerUser inputPeer = new TLInputPeerUser() { UserId = user.Id }; TLMessagesSlice res = await client.SendRequestAsync <TLMessagesSlice>(new TLRequestGetHistory() { Peer = inputPeer }); TLDocument document = res.Messages .OfType <TLMessage>() .Where(m => m.Media != null) .Select(m => m.Media) .OfType <TLMessageMediaDocument>() .Select(md => md.Document) .OfType <TLDocument>() .First(); TeleSharp.TL.Upload.TLFile resFile = await client.GetFile( new TLInputDocumentFileLocation() { AccessHash = document.AccessHash, Id = document.Id, Version = document.Version }, document.Size); Assert.IsTrue(resFile.Bytes.Length > 0); }
public virtual async Task SendMessageTest() { this.NumberToSendMessage = ConfigurationManager.AppSettings[nameof(this.NumberToSendMessage)]; if (string.IsNullOrWhiteSpace(this.NumberToSendMessage)) { throw new Exception($"Please fill the '{nameof(this.NumberToSendMessage)}' setting in app.config file first"); } // this is because the contacts in the address come without the "+" prefix string normalizedNumber = this.NumberToSendMessage.StartsWith("+") ? this.NumberToSendMessage.Substring(1, this.NumberToSendMessage.Length - 1) : this.NumberToSendMessage; TelegramClient client = this.NewClient(); TelegramAuthModel authModel = new TelegramAuthModel() { ApiId = this.ApiId, ApiHash = this.ApiHash }; await client.AuthenticateAsync(authModel); TeleSharp.TL.Contacts.TLContacts result = await client.GetContactsAsync(); TLUser user = result.Users .OfType <TLUser>() .FirstOrDefault(x => x.Phone == normalizedNumber); if (user == null) { throw new System.Exception("Number was not found in Contacts List of user: "******"TEST"); }
public virtual async Task SendPhotoToContactTest() { TelegramClient client = this.NewClient(); TelegramAuthModel authModel = new TelegramAuthModel() { ApiId = this.ApiId, ApiHash = this.ApiHash }; await client.AuthenticateAsync(authModel); TeleSharp.TL.Contacts.TLContacts result = await client.GetContactsAsync(); TLUser user = result.Users .OfType <TLUser>() .FirstOrDefault(x => x.Phone == this.NumberToSendMessage); TLInputFile fileResult = (TLInputFile)await client.UploadFile("cat.jpg", new StreamReader("data/cat.jpg")); await client.SendUploadedPhoto(new TLInputPeerUser() { UserId = user.Id }, fileResult, "kitty"); }