public MainPage() { InitializeComponent(); Items = new System.Collections.ObjectModel.ObservableCollection <string>(); _handler = new MyClientResultHandler(this); Td.Client.Execute(new TdApi.SetLogVerbosityLevel(0)); Td.Client.Execute(new TdApi.SetLogStream(new TdApi.LogStreamFile(Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "log"), 1 << 27))); System.Threading.Tasks.Task.Run(() => { try { _client = Td.Client.Create(_handler); var parameters = new TdApi.TdlibParameters(); parameters.DatabaseDirectory = Windows.Storage.ApplicationData.Current.LocalFolder.Path; parameters.UseSecretChats = true; parameters.UseMessageDatabase = true; parameters.ApiId = 94575; parameters.ApiHash = "a3406de8d171bb422bb6ddf3bbd800e2"; parameters.SystemLanguageCode = "en"; parameters.DeviceModel = "Desktop"; parameters.SystemVersion = "Unknown"; parameters.ApplicationVersion = "1.0.0"; _client.Send(new TdApi.SetTdlibParameters(parameters), null); _client.Send(new TdApi.CheckDatabaseEncryptionKey(), null); _client.Run(); } catch (Exception ex) { Print(ex.ToString()); } }); }
private static void OnAuthorizationStateUpdated(TdApi.AuthorizationState authorizationState) { if (authorizationState != null) { _authorizationState = authorizationState; } if (_authorizationState is TdApi.AuthorizationStateWaitTdlibParameters) { TdApi.TdlibParameters parameters = new TdApi.TdlibParameters(); parameters.DatabaseDirectory = "tdlib"; parameters.UseMessageDatabase = true; parameters.UseSecretChats = true; parameters.ApiId = 94575; parameters.ApiHash = "a3406de8d171bb422bb6ddf3bbd800e2"; parameters.SystemLanguageCode = "en"; parameters.DeviceModel = "Desktop"; parameters.ApplicationVersion = "1.0"; parameters.EnableStorageOptimizer = true; _client.Send(new TdApi.SetTdlibParameters(parameters), new AuthorizationRequestHandler()); } else if (_authorizationState is TdApi.AuthorizationStateWaitEncryptionKey) { _client.Send(new TdApi.CheckDatabaseEncryptionKey(), new AuthorizationRequestHandler()); } else if (_authorizationState is TdApi.AuthorizationStateWaitPhoneNumber) { string phoneNumber = ReadLine("Please enter phone number: "); _client.Send(new TdApi.SetAuthenticationPhoneNumber(phoneNumber, null), new AuthorizationRequestHandler()); } else if (_authorizationState is TdApi.AuthorizationStateWaitOtherDeviceConfirmation state) { Console.WriteLine("Please confirm this login link on another device: " + state.Link); } else if (_authorizationState is TdApi.AuthorizationStateWaitCode) { string code = ReadLine("Please enter authentication code: "); _client.Send(new TdApi.CheckAuthenticationCode(code), new AuthorizationRequestHandler()); } else if (_authorizationState is TdApi.AuthorizationStateWaitRegistration) { string firstName = ReadLine("Please enter your first name: "); string lastName = ReadLine("Please enter your last name: "); _client.Send(new TdApi.RegisterUser(firstName, lastName), new AuthorizationRequestHandler()); } else if (_authorizationState is TdApi.AuthorizationStateWaitPassword) { string password = ReadLine("Please enter password: "******"Logging out"); } else if (_authorizationState is TdApi.AuthorizationStateClosing) { _haveAuthorization = false; Print("Closing"); } else if (_authorizationState is TdApi.AuthorizationStateClosed) { Print("Closed"); _client.Dispose(); // _client is closed and native resources can be disposed now if (!_quiting) { _client = CreateTdClient(); // recreate _client after previous has closed } } else { Print("Unsupported authorization state:" + _newLine + _authorizationState); } }
private static void OnAuthorizationStateUpdated(TdApi.AuthorizationState authorizationState) { if (authorizationState != null) { _authorizationState = authorizationState; } if (_authorizationState is TdApi.AuthorizationStateWaitTdlibParameters) { TdApi.TdlibParameters parameters = new TdApi.TdlibParameters(); parameters.DatabaseDirectory = "tdlib"; parameters.UseMessageDatabase = true; parameters.UseSecretChats = true; parameters.ApiId = 94575; parameters.ApiHash = "a3406de8d171bb422bb6ddf3bbd800e2"; parameters.SystemLanguageCode = "en"; parameters.DeviceModel = "Desktop"; parameters.SystemVersion = "Unknown"; parameters.ApplicationVersion = "1.0"; parameters.EnableStorageOptimizer = true; _client.Send(new TdApi.SetTdlibParameters(parameters), new AuthorizationRequestHandler()); } else if (_authorizationState is TdApi.AuthorizationStateWaitEncryptionKey) { _client.Send(new TdApi.CheckDatabaseEncryptionKey(), new AuthorizationRequestHandler()); } else if (_authorizationState is TdApi.AuthorizationStateWaitPhoneNumber) { string phoneNumber = ReadLine("Please enter phone number: "); _client.Send(new TdApi.SetAuthenticationPhoneNumber(phoneNumber, false, false), new AuthorizationRequestHandler()); } else if (_authorizationState is TdApi.AuthorizationStateWaitCode) { string code = ReadLine("Please enter authentication code: "); _client.Send(new TdApi.CheckAuthenticationCode(code, "", ""), new AuthorizationRequestHandler()); } else if (_authorizationState is TdApi.AuthorizationStateWaitPassword) { string password = ReadLine("Please enter password: "******"Logging out"); } else if (_authorizationState is TdApi.AuthorizationStateClosing) { _haveAuthorization = false; Print("Closing"); } else if (_authorizationState is TdApi.AuthorizationStateClosed) { Print("Closed"); if (!_quiting) { _client = CreateTdClient(); // recreate _client after previous has closed } } else { Print("Unsupported authorization state:" + _newLine + _authorizationState); } }
public void OnAuthorizationStateUpdated(TdApi.AuthorizationState authorizationState) { if (authorizationState != null) { _authorizationState = authorizationState; } if (_authorizationState is TdApi.AuthorizationStateWaitTdlibParameters) { TdApi.TdlibParameters parameters = new TdApi.TdlibParameters(); parameters.DatabaseDirectory = _databaseDirectory; parameters.UseMessageDatabase = _useMessageDatabase; parameters.UseSecretChats = _useSecretChats; parameters.ApiId = _apiId; parameters.ApiHash = _apiHash; parameters.SystemLanguageCode = _systemLanguageCode; parameters.DeviceModel = _deviceModel; parameters.SystemVersion = _systemVersion; parameters.ApplicationVersion = _applicationVersion; parameters.EnableStorageOptimizer = _enableStorageOptimizer; _client.Send(new TdApi.SetTdlibParameters(parameters), new AuthorizationRequestHandler()); OnAuthorizationStateUpdatedEvent(EnumAuthorization.TdlibParameters); } else if (_authorizationState is TdApi.AuthorizationStateWaitEncryptionKey) { _client.Send(new TdApi.CheckDatabaseEncryptionKey(), new AuthorizationRequestHandler()); OnAuthorizationStateUpdatedEvent(EnumAuthorization.EncryptionKey); } else if (_authorizationState is TdApi.AuthorizationStateWaitPhoneNumber) { OnAuthorizationStateUpdatedEvent(EnumAuthorization.WaitPhoneNumber); } else if (_authorizationState is TdApi.AuthorizationStateWaitCode) { OnAuthorizationStateUpdatedEvent(EnumAuthorization.WaitCode); } else if (_authorizationState is TdApi.AuthorizationStateWaitPassword) { OnAuthorizationStateUpdatedEvent(EnumAuthorization.WaitPassword); } else if (_authorizationState is TdApi.AuthorizationStateReady) { _haveAuthorization = true; _gotAuthorization.Set(); OnAuthorizationStateUpdatedEvent(EnumAuthorization.Ready); } else if (_authorizationState is TdApi.AuthorizationStateLoggingOut) { _haveAuthorization = false; Print("Logging out"); OnAuthorizationStateUpdatedEvent(EnumAuthorization.LoggingOut); } else if (_authorizationState is TdApi.AuthorizationStateClosing) { _haveAuthorization = false; Print("Closing"); OnAuthorizationStateUpdatedEvent(EnumAuthorization.Closing); } else if (_authorizationState is TdApi.AuthorizationStateClosed) { Print("Closed"); if (!_quiting) { _client = CreateTdClient(); // recreate _client after previous has closed } OnAuthorizationStateUpdatedEvent(EnumAuthorization.Closed); } else { Print("Unsupported authorization state:" + _newLine + _authorizationState); OnAuthorizationStateUpdatedEvent(EnumAuthorization.None); } OnAuthorizationStateUpdatedEvent(EnumAuthorization.None); }