public async Task <bool> EnterIncomingCode(string code) { try { TlUser tlUser = await _client.MakeAuthAsync(_phoneNumber, _hash, code); Contact currentUser = new Contact { FirstName = tlUser.FirstName, LastName = tlUser.LastName, PhoneNumber = tlUser.Phone, Id = tlUser.Id }; string info = JsonConvert.SerializeObject(currentUser); using (var file = File.OpenWrite("currentUser.json")) { using (StreamWriter sw = new StreamWriter(file)) { sw.Write(info); } } return(true); } catch (Exception e) { Console.WriteLine(e.Message); return(false); } }
private static void OnUserAuthenticated(IComponentContext container, TlUser tlUser) { var clientSettings = container.Resolve <IClientSettings>(); Guard.That(clientSettings).IsNotNull(); var session = clientSettings.Session; Guard.That(session).IsNotNull(); session.TlUser = tlUser; session.SessionExpires = int.MaxValue; var sessionStore = container.Resolve <ISessionStore>(); sessionStore.Save(); }
public static Session FromBytes(byte[] buffer, string sessionUserId) { using (var stream = new MemoryStream(buffer)) using (var reader = new BinaryReader(stream)) { var id = reader.ReadUInt64(); var sequence = reader.ReadInt32(); var salt = reader.ReadUInt64(); var timeOffset = reader.ReadInt32(); var serverAddress = Serializers.String.Read(reader); var port = reader.ReadInt32(); var isAuthExsist = reader.ReadInt32() == 1; var sessionExpires = 0; TlUser tlUser = null; if (isAuthExsist) { sessionExpires = reader.ReadInt32(); tlUser = (TlUser)ObjectUtils.DeserializeObject(reader); } var authData = Serializers.Bytes.Read(reader); return(new Session { AuthKey = new AuthKey(authData), Id = id, Salt = salt, TimeOffset = timeOffset, SessionSeqNo = sequence, SessionExpires = sessionExpires, TlUser = tlUser, SessionUserId = sessionUserId, ServerAddress = serverAddress, Port = port }); } }
private async Task SendMessage(ITelegramClient client, TlUser user) { await client.SendMessageAsync(new TlInputPeerUser { UserId = user.Id }, "TEST_" + Random.Next()); }