private void beginAuthorizationButton_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(this.googleTokenManager.ConsumerKey)) { MessageBox.Show(this, "You must modify the App.config or OAuthConsumerWpf.exe.config file for this application to include your Google OAuth consumer key first.", "Configuration required", MessageBoxButton.OK, MessageBoxImage.Stop); return; } Authorize auth = new Authorize( this.google, (DesktopConsumer consumer, out string requestToken) => GoogleConsumer.RequestAuthorization( consumer, GoogleConsumer.Applications.Contacts | GoogleConsumer.Applications.Blogger, out requestToken)); bool?result = auth.ShowDialog(); if (result.HasValue && result.Value) { this.googleAccessToken = auth.AccessToken; this.postButton.IsEnabled = true; XDocument contactsDocument = GoogleConsumer.GetContacts(this.google, this.googleAccessToken, 25, 1); var contacts = from entry in contactsDocument.Root.Elements(XName.Get("entry", "http://www.w3.org/2005/Atom")) select new { Name = entry.Element(XName.Get("title", "http://www.w3.org/2005/Atom")).Value, Email = entry.Element(XName.Get("email", "http://schemas.google.com/g/2005")).Attribute("address").Value }; this.contactsGrid.Children.Clear(); foreach (var contact in contacts) { this.contactsGrid.RowDefinitions.Add(new RowDefinition()); TextBlock name = new TextBlock { Text = contact.Name }; TextBlock email = new TextBlock { Text = contact.Email }; Grid.SetRow(name, this.contactsGrid.RowDefinitions.Count - 1); Grid.SetRow(email, this.contactsGrid.RowDefinitions.Count - 1); Grid.SetColumn(email, 1); this.contactsGrid.Children.Add(name); this.contactsGrid.Children.Add(email); } } }
protected void Page_Load(object sender, EventArgs e) { try { //NOTE: removed. so every page will provide google auth dialog if (AccessToken != null) { //Previously stored token. clean it ImportConfiguration.GoogleTokenManager.ExpireToken(AccessToken); } //Authenticating when loading pages if (!IsPostBack) { using ( var google = new WebConsumer(GoogleConsumer.ServiceDescription, ImportConfiguration.GoogleTokenManager)) { // Is Google calling back with authorization? var accessTokenResponse = google.ProcessUserAuthorization(); if (accessTokenResponse != null) { AccessToken = accessTokenResponse.AccessToken; //Redirecting to result page SubmitToken(AccessToken, Source); } else { // If we don't yet have access, immediately request it. GoogleConsumer.RequestAuthorization(google, "https://docs.google.com/feeds/ https://spreadsheets.google.com/feeds/ https://docs.googleusercontent.com/"); } } } } catch (ThreadAbortException) { } catch (Exception ex) { SubmitError(ex.Message, Source); } }
protected void Page_Load(object sender, EventArgs e) { if (this.TokenManager != null) { MultiView1.ActiveViewIndex = 1; if (!IsPostBack) { var google = new WebConsumer(GoogleConsumer.ServiceDescription, this.TokenManager); // Is Google calling back with authorization? var accessTokenResponse = google.ProcessUserAuthorization(); if (accessTokenResponse != null) { this.AccessToken = accessTokenResponse.AccessToken; } else if (this.AccessToken == null) { // If we don't yet have access, immediately request it. GoogleConsumer.RequestAuthorization(google, GoogleConsumer.Applications.Contacts); } } } }