private async void btnCheck_Click(object sender, EventArgs e) { var client = new TLSharp.Core.TelegramClient(BuildVar.apiId, BuildVar.apiHash); await client.ConnectAsync(); if (client.IsConnected) { try { btnCheck.Enabled = false; var number = txtNumber.Text; // check mikonim age + dasht bayad ouno hazf konim // age dasht ke hazfesh mikonim, age nadasht ham bikhialesh mishim var normalizedNumber = number.StartsWith("+") ? number.Substring(1) : number; var result = await client.IsPhoneRegisteredAsync(normalizedNumber); MessageBox.Show((result ? "This Number Registered." : "This Number Not Registered.")); btnCheck.Enabled = true; } catch (Exception ex) { MessageBox.Show(ex.Message); } } }
public static List <ChannelInfo> Test(List <Channel> channels, Int32 id_user) { var client = new TLSharp.Core.TelegramClient(833968, "a6c65fd9460c44e42c5268b5601c849f"); var isAuth = client.IsUserAuthorized(); Console.WriteLine($"Файл авторизации существует: {isAuth}"); client.ConnectAsync().Wait(); var res_2 = StartInfoChannel.GetInfoGroup(channels, client).Result; List <ChannelInfo> ListFoundChannels = StartInfoChannel.GetChannelByUser(res_2, id_user); foreach (var item in ListFoundChannels) { foreach (var item2 in item.Users) { Console.WriteLine("User: "******"Admin: " + item2.FirstName); } } return(ListFoundChannels); }
private async void btnCheck_Click(object sender, EventArgs e) { var client = new TLSharp.Core.TelegramClient(BuildVar.apiId, BuildVar.apiHash); await client.ConnectAsync(); if (client.IsConnected) { try { btnCheck.Enabled = false; for (int i = 0; i < listBox1.Items.Count; i++) { var number = listBox1.Items[i].ToString(); var normalizedNumber = number.StartsWith("+") ? number.Substring(1) : number; var result = await client.IsPhoneRegisteredAsync(normalizedNumber); if (result) { listBox2.Items.Add(number); listBox1.Items.RemoveAt(i); } } btnCheck.Enabled = true; } catch (Exception ex) { MessageBox.Show(ex.Message); } } }
public virtual async Task MakeAuthAsync(string code) { var client = new TLSharp.Core.TelegramClient(apiId, apiHash); await client.ConnectAsync(); var user = await client.MakeAuthAsync(PhoneNumber, phoneCodeHash, code); }
//public virtual async Task<string> GetLastMessageFromUser(string sUserName) //{ // string sResult; // var client = new TLSharp.Core.TelegramClient(apiId, apiHash); // await client.ConnectAsync(); // var normalizedUser = (sUserName.StartsWith("@") ? // sUserName.Substring(1, sUserName.Length - 1) : // sUserName).ToLower(); // var dialogs = (TLDialogs)await client.GetUserDialogsAsync(); // var user = dialogs.Users // .Where(x => x.GetType() == typeof(TLUser)) // .OfType<TLUser>() // .FirstOrDefault(x => x.Username != null && x.Username.ToLower() == normalizedUser); // TLAbsMessages tlAbsMessages = await client.GetHistoryAsync(new TLInputPeerUser() { // UserId = user.Id, // AccessHash = user.AccessHash.Value // }, 0, -1, 100); // TLMessages tlMessages = (TLMessages)tlAbsMessages; // TLMessage lastmessage = (TLMessage)tlMessages.Messages[0]; // sResult = lastmessage.FromId.ToString() + ":" + lastmessage.Message; // return sResult; //} public virtual async Task <TLMessage> GetLastMessageFromUser(string sUserName) { TLMessage lastmessage = null; var client = new TLSharp.Core.TelegramClient(apiId, apiHash); await client.ConnectAsync(); var normalizedUser = (sUserName.StartsWith("@") ? sUserName.Substring(1, sUserName.Length - 1) : sUserName).ToLower(); var dialogs = (TLDialogs)await client.GetUserDialogsAsync(); var user = dialogs.Users .Where(x => x.GetType() == typeof(TLUser)) .OfType <TLUser>() .FirstOrDefault(x => x.Username != null && x.Username.ToLower() == normalizedUser); TLAbsMessages tlAbsMessages = await client.GetHistoryAsync(new TLInputPeerUser() { UserId = user.Id, AccessHash = user.AccessHash.Value }, 0, -1, 100); if (tlAbsMessages.GetType() == typeof(TLMessagesSlice)) { var castMessages = (TLMessagesSlice)tlAbsMessages; lastmessage = (TLMessage)castMessages.Messages[0]; } else if (tlAbsMessages.GetType() == typeof(TLMessages)) { TLMessages tlMessages = (TLMessages)tlAbsMessages; lastmessage = (TLMessage)tlMessages.Messages[0]; } return(lastmessage); }
protected async System.Threading.Tasks.Task SendMessaggioTelegram(string numeroTelefono, string code, string messaggio) { var client = new TLSharp.Core.TelegramClient(106191, "2a5c0da8fcb3acfdf501c3f17fb0fa5f"); await client.ConnectAsync(); var hash = await client.SendCodeRequestAsync(numeroTelefono); var user = await client.MakeAuthAsync(numeroTelefono, hash, code); //get available contacts var result = await client.GetContactsAsync(); //find recipient in contacts var customer = result.Users .Where(x => x.GetType() == typeof(TeleSharp.TL.TLUser)) .Cast <TeleSharp.TL.TLUser>() .FirstOrDefault(x => x.Phone == numeroTelefono); /*if (user.ToList().Count != 0) * { * foreach (var u in user) * { * if (u.phone.Contains("3965604")) * { * //send message * await client.SendMessageAsync(new TLInputPeerUser() { user_id = u.id }, textBox3.Text); * } * } * }*/ // @channelname or chat_id, messaggio da inviare await client.SendMessageAsync(new TeleSharp.TL.TLInputPeerUser() { UserId = customer.Id }, messaggio); }
protected async System.Threading.Tasks.Task SendCodeTelegram(string numeroTelefono) { var client = new TLSharp.Core.TelegramClient(106191, "2a5c0da8fcb3acfdf501c3f17fb0fa5f"); await client.ConnectAsync(); var hash = await client.SendCodeRequestAsync(numeroTelefono); }
public virtual async Task <bool> IsUserAuthorized() { var client = new TLSharp.Core.TelegramClient(apiId, apiHash); await client.ConnectAsync(); return(client.IsUserAuthorized()); }
public virtual async Task AuthUser() { var client = new TLSharp.Core.TelegramClient(apiId, apiHash); await client.ConnectAsync(); phoneCodeHash = await client.SendCodeRequestAsync(PhoneNumber); }
public async Task <Boolean> Start(Int32 id, String hash) { //if (client == null || client.IsUserAuthorized() == false) //{ // return false; //} client = new TLSharp.Core.TelegramClient(id, hash); await client.ConnectAsync(); return(client.IsConnected); }
public virtual async Task SendMessageToUser(string toUserName, string message) { var client = new TLSharp.Core.TelegramClient(apiId, apiHash); await client.ConnectAsync(); var normalizedUser = (toUserName.StartsWith("@") ? toUserName.Substring(1, toUserName.Length - 1) : toUserName).ToLower(); var dialogs = (TLDialogs)await client.GetUserDialogsAsync(); var user = dialogs.Users .Where(x => x.GetType() == typeof(TLUser)) .OfType <TLUser>() .FirstOrDefault(x => x.Username != null && x.Username.ToLower() == normalizedUser); if (user != null) { await client.SendTypingAsync(new TLInputPeerUser() { UserId = user.Id, AccessHash = user.AccessHash.Value }); await client.SendMessageAsync(new TLInputPeerUser() { UserId = user.Id, AccessHash = user.AccessHash.Value }, message); } //await client.SendMessageAsync(new TLInputPeerUser() { UserId = user.Id, AccessHash = user.AccessHash.Value }, message); //send message //await client.SendMessageAsync(new TLInputPeerChannel() { ChannelId = chat.Id, AccessHash = chat.AccessHash.Value }, "OUR_MESSAGE"); //var result = await client.SearchUserAsync(normalizedUser, 10); //if (result.Users.Count > 0) //{ // TLUser user = (TLUser)result.Users[0]; // await client.SendMessageAsync(new TLInputPeerUser() { UserId = user.Id }, message); //} //var normalizedNumber1 = toUserName.StartsWith("@") ? // toUserName.Substring(1, toUserName.Length - 1) : // toUserName; //var user = result.Users // .OfType<TLUser>() // .FirstOrDefault(x => x.Username == toUserName); //await client.SendMessageAsync(new TLInputPeerUser() { UserId = user.Id }, message); }
public virtual async Task SendMessage(string toNumber, string message) { var client = new TLSharp.Core.TelegramClient(apiId, apiHash); await client.ConnectAsync(); var dialogs = (TLDialogs)await client.GetUserDialogsAsync(); // this is because the contacts in the address come without the "+" prefix var normalizedNumber = toNumber.StartsWith("+") ? toNumber.Substring(1, toNumber.Length - 1) : toNumber; var user = dialogs.Users .OfType <TLUser>() .FirstOrDefault(x => x.Phone == normalizedNumber); await client.SendMessageAsync(new TLInputPeerUser() { UserId = user.Id, AccessHash = user.AccessHash.Value }, message); }
private async void btStart_Click(object sender, EventArgs e) { var client = new TLSharp.Core.TelegramClient(teleApi.apiId, teleApi.apiHash); await client.ConnectAsync(); while (true) { var state = await client.SendRequestAsync <TLState>(new TLRequestGetState()); var req = new TLRequestGetDifference() { Date = state.Date, Pts = state.Pts, Qts = state.Qts }; var diff = await client.SendRequestAsync <TLAbsDifference>(req) as TLDifference; if (diff != null) { foreach (var upd in diff.OtherUpdates.ToList().OfType <TLUpdateNewChannelMessage>()) { tbReceipt.Text = (upd.Message as TLMessage).Message + tbReceipt.Text; //Console.WriteLine((upd.Message as TLMessage).Message); } foreach (var ch in diff.Chats.ToList().OfType <TLChannel>().Where(x => !x.Left)) { var ich = new TLInputChannel() { ChannelId = ch.Id, AccessHash = (long)ch.AccessHash }; var readed = new TeleSharp.TL.Channels.TLRequestReadHistory() { Channel = ich, MaxId = -1 }; await client.SendRequestAsync <bool>(readed); } } await Task.Delay(500); } }
public async Task <List <TLMessage> > GatherChannelHistory(string channelName, int offset = 0, int maxId = -1, int limit = 50) { List <TLMessage> _resultMessages = new List <TLMessage>(); var client = new TLSharp.Core.TelegramClient(apiId, apiHash); await client.ConnectAsync(); var dialogs = (TLDialogs)await client.GetUserDialogsAsync(); var chat = dialogs.Chats.ToList() .OfType <TLChannel>() .FirstOrDefault(c => c.Title == channelName); if (chat.AccessHash != null) { TLChannel channel = new TLChannel() { Id = chat.Id, AccessHash = chat.AccessHash }; var request = new TLRequestGetFullChannel(); var fullChat = await client.SendRequestAsync <TLRequestGetFullChannel>(request); //var request = new TLRequestGetFullChat() { ChatId = chat.Id }; //var fullChat = await client.SendRequestAsync<TeleSharp.TL.Messages.TLChatFull>(request); //var request = new TLRequestGetMessages() { Id = chat. }; //var fullChat = await client.SendRequestAsync<TeleSharp.TL.Channels.TLRequestGetMessages>(request); //var request = new TLRequestGetAllChats() { }; //var fullChat = await client.SendRequestAsync<TeleSharp.TL.Messages.TLRequestGetAllChats>(request); var tlAbsMessages = await client.GetHistoryAsync( new TLInputPeerChannel { ChannelId = chat.Id, AccessHash = chat.AccessHash.Value }, offset, maxId, limit); var tlChannelMessages = (TLChannelMessages)tlAbsMessages; for (var index = 0; index < tlChannelMessages.Messages.Count - 1; index++) { var tlAbsMessage = tlChannelMessages.Messages.ToList()[index]; var message = (TLMessage)tlAbsMessage; //Now you have the message and you can do what you need with it //the code below is an example of messages classification if (message.Media == null) { _resultMessages.Add(new TLMessage() { Id = message.Id, FromId = chat.Id, Message = message.Message, Views = message.Views, }); } else { switch (message.Media.GetType().ToString()) { case "TeleSharp.TL.TLMessageMediaPhoto": var tLMessageMediaPhoto = (TLMessageMediaPhoto)message.Media; _resultMessages.Add(new TLMessage() { Id = message.Id, FromId = chat.Id, Message = message.Message, Views = message.Views, Media = message.Media, }); break; //case "TeleSharp.TL.TLMessageMediaDocument": // var tLMessageMediaDocument = (TLMessageMediaDocument)message.media; // _resultMessages.Add(new ChannelMessage() // { // Id = message.id, // ChannelId = chat.id, // Content = tLMessageMediaDocument.caption, // Type = EnChannelMessage.MediaDocument, // Views = message.views ?? 0, // }); // break; //case "TeleSharp.TL.TLMessageMediaWebPage": // var tLMessageMediaWebPage = (TLMessageMediaWebPage)message.media; // string url = string.Empty; // if (tLMessageMediaWebPage.webpage.GetType().ToString() != "TeleSharp.TL.TLWebPageEmpty") // { // var webPage = (TLWebPage)tLMessageMediaWebPage.webpage; // url = webPage.url; // } // _resultMessages.Add(new ChannelMessage // { // Id = message.id, // ChannelId = chat.id, // Content = message.message + @" : " + url, // Type = EnChannelMessage.WebPage, // Views = message.views ?? 0, // }); // break; } } } } return(_resultMessages); }
/// <summary> /// 서버와 연결을 시작합니다. /// </summary> public async Task Connect() { client = new TLSharp.Core.TelegramClient(_apiId, _apiHash); await client.ConnectAsync(); }
private async Task ExportMessagesToWord() { using var telegram = new TLSharp.Core.TelegramClient(_authConfiguration.ApiId, _authConfiguration.ApiHash, null, _authConfiguration.SessionUserId); await telegram.ConnectAsync(); await Task.Delay(10000); var dialogs = (TLDialogs)await telegram.GetUserDialogsAsync(); var channel = dialogs.Chats .OfType <TLChannel>() .FirstOrDefault(c => c.Title == _myChannelConfiguration.ChannelHeapName); var inputPeer = new TLInputPeerChannel() { ChannelId = channel.Id, AccessHash = (long)channel.AccessHash }; var offset = 0; var sig = false; await using var fs = new FileStream( Path.Combine( _reportConfiguration.FullPath, $"{_reportConfiguration.Name}-{DateTime.Now:MM-dd-yyyy}.docx" ), FileMode.Create, FileAccess.Write ); var doc = new XWPFDocument(); var paragraph = doc.CreateParagraph(); var run = paragraph.CreateRun(); while (true) { if (sig) { break; } await Task.Delay(10000); var res = await telegram.SendRequestAsync <TLChannelMessages>( new TLRequestGetHistory() { Peer = inputPeer, Limit = 100, AddOffset = offset, OffsetId = 0 } ); var msgs = res.Messages; if (res.Count <= offset) { break; } offset += msgs.Count; foreach (var msg in msgs) { if (!(msg is TLMessage message)) { continue; } if (string.IsNullOrEmpty(message.Message)) { continue; } if (message.Date > (int)DateTimeOffset.Parse(DateTime.UtcNow.ToString("MM/dd/yyyy")) .ToUnixTimeSeconds()) { continue; } if (message.Date < (int)DateTimeOffset.Parse(DateTime.UtcNow.AddDays(-1).ToString("MM/dd/yyyy")) .ToUnixTimeSeconds()) { sig = true; break; } await Task.Delay(1000); var ch = dialogs.Chats .OfType <TLChannel>() .FirstOrDefault(c => c.Id == message.FwdFrom.ChannelId); if (ch == null) { continue; } run.AppendText(@$ "Канал: {ch.Title}"); run.AddCarriageReturn(); run.AppendText( @$ "Дата: {new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(message.Date):d-M-yyyy HH:mm:ss}" ); run.AddCarriageReturn(); run.AppendText( @$ "Сообщение: {message.Message.Replace(" \ n ", string.Empty).Replace(" \ r ", string.Empty).Replace(" \ t ", string.Empty)}" ); run.AddCarriageReturn(); run.AddCarriageReturn(); run.AddCarriageReturn(); } } doc.Write(fs); }