//************************************************************************* // Constructor: TwitterAuthorizationManager() // /// <summary> /// Initializes a new instance of the <see /// cref="TwitterAuthorizationManager" /> class. /// </summary> /// /// <param name="twitterAuthorizationControl"> /// The TwitterAuthorizationControl owned by the parent dialog. This class /// manages the control's <see cref="TwitterAuthorizationControl.Status" /> /// property. /// </param> //************************************************************************* public TwitterAuthorizationManager ( TwitterAuthorizationControl twitterAuthorizationControl ) { m_oTwitterAuthorizationControl = twitterAuthorizationControl; // If the user has already authorized, he doesn't need to do so again. // Otherwise, assume he doesn't have a Twitter account. m_oTwitterAuthorizationControl.Status = TwitterAccessToken.Exists() ? TwitterAuthorizationStatus.HasTwitterAccountAuthorized : TwitterAuthorizationStatus.NoTwitterAccount; AssertValid(); }
AuthorizeIfRequested() { AssertValid(); switch (m_oTwitterAuthorizationControl.Status) { case TwitterAuthorizationStatus.NoTwitterAccount: // Delete any access token that exists. TwitterAccessToken.Delete(); return(true); case TwitterAuthorizationStatus.HasTwitterAccountAuthorized: return(true); case TwitterAuthorizationStatus.HasTwitterAccountNotAuthorized: TwitterAccessToken.Delete(); // Continue below. break; default: Debug.Assert(false); break; } // Get a Twitter request token. oAuthTwitter oTwitterAuth = new oAuthTwitter(); Uri oAuthorizationUri = new Uri(oTwitterAuth.AuthorizationLinkGet()); String sRequestToken = HttpUtility.ParseQueryString( oAuthorizationUri.Query)["oauth_token"]; Debug.Assert(!String.IsNullOrEmpty(sRequestToken)); // Open the Twitter authorization page. Process.Start(oAuthorizationUri.ToString()); // Tell the user that the Twitter authorization page has been opened in // a browser window, and get the PIN that Twitter provides after // authorization is complete. TwitterAuthorizingDialog oTwitterAuthorizingDialog = new TwitterAuthorizingDialog(); if (oTwitterAuthorizingDialog.ShowDialog( m_oTwitterAuthorizationControl.ParentForm) != DialogResult.OK) { return(false); } // Convert the request token to an access token. oTwitterAuth.Token = sRequestToken; oTwitterAuth.AccessTokenGet( sRequestToken, oTwitterAuthorizingDialog.Pin); Debug.Assert(!String.IsNullOrEmpty(oTwitterAuth.Token)); Debug.Assert(!String.IsNullOrEmpty(oTwitterAuth.TokenSecret)); // Save the access token. TwitterAccessToken oTwitterAccessToken = new TwitterAccessToken(); oTwitterAccessToken.Save(oTwitterAuth.Token, oTwitterAuth.TokenSecret); return(true); }