private async void AuthorizePocket() { Settings.PocketClient.CallbackUri = "https://getpocket.com/a/queue/"; //Todo: Need to change this to an automatically closing page string requestCode = await Settings.PocketClient.GetRequestCode(); Uri authenticationUri = Settings.PocketClient.GenerateAuthenticationUri(); Process.Start(authenticationUri.ToString()); PocketUser user = null; while (true) { try { user = await Settings.PocketClient.GetUser(requestCode); break; } catch { } System.Threading.Thread.Sleep(500); } Settings.Instance.PocketAuthCode = user.Code; Settings.Instance.AddToPocket = true; }
/// <summary> /// Requests the access code and username after authentication /// The access code has to permanently be stored within the users session, and should be passed in the constructor for all future PocketClient initializations. /// </summary> /// <param name="cancellationToken">The cancellation token.</param> /// <param name="requestCode">The request code.</param> /// <returns> /// The authenticated user /// </returns> /// <exception cref="System.NullReferenceException">Call GetRequestCode() first to receive a request_code</exception> public async Task <PocketUser> GetUser(string requestCode = null, CancellationToken cancellationToken = default(CancellationToken)) { // check if request code is available if (RequestCode == null && requestCode == null) { throw new NullReferenceException("Call GetRequestCode() first to receive a request_code"); } // override property with given param if available if (requestCode != null) { RequestCode = requestCode; } // do request PocketUser response = await Request <PocketUser>("oauth/authorize", cancellationToken, new Dictionary <string, string>() { { "code", RequestCode } }, false); // save code to client AccessCode = response.Code; return(response); }
private static async Task <int> Main(string[] args) { Console.WriteLine("Hello World!"); var _client = new PocketClient(_config.PocketConsumerKey, callbackUri: _config.PocketRedirectUri); string requestCode = await _client.GetRequestCode(); Console.WriteLine(_client.GenerateRegistrationUri(requestCode).ToString()); Console.WriteLine("Press enter after authorizing app..."); Console.ReadLine(); PocketUser pocketUser = await _client.GetUser(requestCode); IUserService userService = UserService.BuildUserService(_config.StorageConnectionString); Console.WriteLine("Input your kindle email:"); var kindleEmail = Console.ReadLine(); var user = new User() { AccessCode = pocketUser.Code, PocketUsername = pocketUser.Username, KindleEmail = kindleEmail, LastProcessingDate = DateTime.UtcNow }; await userService.AddUserAsync(user); Console.WriteLine("Bye World!"); Console.ReadLine(); return(0); }
public void SignOutFromPocket() { LoggedInPocketUser = null; if (FileExistsAsync(Constants.StorageSettings.PocketUserFile)) { DeleteFileAsync(Constants.StorageSettings.PocketUserFile); } }
public void SetPocketUser(PocketUser user, bool saveToDisk) { LoggedInPocketUser = user; _pocketClient.AccessCode = LoggedInPocketUser.Code; if (saveToDisk) { var json = JsonConvert.SerializeObject(LoggedInPocketUser); WriteAllTextAsync(Constants.StorageSettings.PocketUserFile, json); } }
public static async Task <IActionResult> RunAsync( [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequest req, ILogger log, ExecutionContext context) { var _config = new ConfigBuilder(context.FunctionAppDirectory).Build(); var _emailSender = new MailgunSender(_config.MailGunSenderOptions.ApiKey, _config.MailGunSenderOptions.HostEmail); var _client = new PocketClient(_config.PocketConsumerKey, callbackUri: _config.PocketRedirectUri); string requestBody = new StreamReader(req.Body).ReadToEnd(); RegisterRequest request = JsonConvert.DeserializeObject <RegisterRequest>(requestBody); if (!IsValidEmail(request.KindleEmail)) { log.LogError($"Not valid email: {request.KindleEmail}."); return(new BadRequestObjectResult("email provided is not valid")); } PocketUser pocketUser = new PocketUser(); try { pocketUser = await _client.GetUser(request.RequestCode); } catch (PocketException pocketException) { log.LogError($"Something went wrong: {pocketException.Message}."); return(new BadRequestObjectResult(pocketException.Message)); } IUserService userService = UserService.BuildUserService(_config.StorageConnectionString); await userService.AddUserAsync(new User { AccessCode = pocketUser.Code, PocketUsername = pocketUser.Username, KindleEmail = request.KindleEmail, LastProcessingDate = DateTime.UtcNow, Token = Guid.NewGuid().ToString() }); await SendWelcomeEmail(_emailSender, request.KindleEmail); log.LogInformation($"Successfully registered user: {request.KindleEmail}."); return(new OkObjectResult("Registration successful")); }
/// <summary> /// Requests the access code and username after authentication /// The access code has to permanently be stored within the users session, and should be passed in the constructor for all future PocketClient initializations. /// </summary> /// <param name="cancellationToken">The cancellation token.</param> /// <param name="requestCode">The request code.</param> /// <returns> /// The authenticated user /// </returns> /// <exception cref="System.NullReferenceException">Call GetRequestCode() first to receive a request_code</exception> public async Task <PocketUser> GetUser(string requestCode = null, CancellationToken cancellationToken = default(CancellationToken)) { // check if request code is available if (RequestCode == null && requestCode == null) { throw new NullReferenceException("Call GetRequestCode() first to receive a request_code"); } // override property with given param if available if (requestCode != null) { RequestCode = requestCode; } // do request GetUserResponse response = await Request <GetUserResponse>("oauth/authorize", cancellationToken, new Dictionary <string, string>() { { "code", RequestCode }, { "account", "1" } }, false); string avatar = response.Account?.Profile?.Avatar_url; PocketUser user = new PocketUser() { Username = response.Username, Code = response.Access_token, Id = response.Account?.User_id, Email = response.Account?.Email, FirstName = response.Account?.First_name, LastName = response.Account?.Last_name, Followers = response.Account?.Profile?.Follower_count ?? 0, Follows = response.Account?.Profile?.Follow_count ?? 0, Avatar = avatar != null ? new Uri(avatar, UriKind.Absolute) : null, IsDefaultAvatar = avatar == null || avatar.Contains("pocket-profile-images."), Description = response.Account?.Profile?.Description }; // save code to client AccessCode = user.Code; return(user); }
private void button3_Click(object sender, EventArgs e) { using (_context = new DigitalPocketContext()) { if (_context.PocketUser.Any(x => x.Username == textBox1.Text)) { MessageBox.Show("User already exsist"); } else { if (String.IsNullOrEmpty(textBox1.Text) || String.IsNullOrEmpty(textBox2.Text) || String.IsNullOrEmpty(textBox3.Text) || String.IsNullOrEmpty(textBox4.Text)) { MessageBox.Show("One of the required field is missing"); } else { PocketUser pu = new PocketUser() { Email = textBox3.Text, Password = textBox2.Text, Username = textBox1.Text }; _context.PocketUser.Add(pu); _context.SaveChanges(); UWallet uw = new UWallet() { Ammount = Convert.ToDecimal(textBox4.Text), Date = DateTime.Now, UserId = pu.Id }; _context.UWallet.Add(uw); _context.SaveChanges(); MessageBox.Show("Account Created please login with your login details"); this.Close(); } } } }
public void SetPocketUser(PocketUser user, bool saveToDisk) { }
public void SetPocketUser(PocketUser user) { }
public async Task IsAuthenticationSuccessful() { string requestCode = await client.GetRequestCode(); PocketUser user = await client.GetUser(requestCode); }
private void SaveCacheUser(PocketUser user) => CacheHandler.Save(Cache.CacheKeys.Pocket, user.Code);
public void SetPocketUser(PocketUser user) { SetPocketUser(user, true); }