/// <summary> /// Get the access information for user operations (access token, access token secret, id and screen name). /// Doc: https://developer.twitter.com/en/docs/basics/authentication/api-reference/access_token /// </summary> /// <param name="tokenResponseData">OAuthTokenData with oauth_token, oauth_token_secret, oatuh</param> /// <returns>ClientAccessTokenData with the access token, token secret, user id, screen name</returns> public TwitterAccessTokenResponseData GetAccessToken(OAuth1TokenResponseData tokenResponseData) { var client = new RestClient(BaseUrl); var request = new RestRequest(GetAccessTokenEndPoint(tokenResponseData), Method.POST); var response = client.Execute(request); var queryString = HttpUtility.ParseQueryString(response.Content); if (response.IsSuccessful) { return(new TwitterAccessTokenResponseData(queryString["oauth_token"], queryString["oauth_token_secret"], queryString["user_id"], queryString["screen_name"])); } throw new CouldNotConnectException( $"Error while connecting to Twitter Api when requesting Access Token. Twitter EndPoint:{GetAccessTokenEndPoint(tokenResponseData)}.\n {response.Content}", response.StatusCode); }
private static string GetAccessTokenEndPoint(OAuth1TokenResponseData tokenResponseData) { return($"/oauth/access_token?oauth_verifier={tokenResponseData.TokenVerifier}&oauth_token={tokenResponseData.Token}"); }