/// <summary> /// /// </summary> /// <param name="value"></param> /// <param name="tokenKey"></param> /// <param name="tokenSecretKey"></param> /// <returns></returns> public static AccessTokenInfo Create(String value, String tokenKey, String tokenSecretKey) { AccessTokenInfo t = new AccessTokenInfo("", ""); String[] ss = value.Split('&'); Dictionary <String, String> d = new Dictionary <string, string>(); foreach (string t1 in ss) { if (t1.Contains("=") == false) { continue; } String[] sss = t1.Split('='); if (sss.Length == 2) { d[sss[0].ToLower()] = sss[1]; } } t._values = d; if (d.ContainsKey(tokenKey)) { t.Token = d[tokenKey]; } if (d.ContainsKey(tokenSecretKey)) { t.TokenSecret = d[tokenSecretKey]; } return(t); }
/// <summary> /// /// </summary> /// <param name="value"></param> /// <param name="tokenKey"></param> /// <param name="tokenSecretKey"></param> /// <returns></returns> public static AccessTokenInfo Create(String value, String tokenKey, String tokenSecretKey) { AccessTokenInfo t = new AccessTokenInfo("", ""); String[] ss = value.Split('&'); Dictionary<String, String> d = new Dictionary<string, string>(); foreach (string t1 in ss) { if (t1.Contains("=") == false) { continue; } String[] sss = t1.Split('='); if (sss.Length == 2) { d[sss[0].ToLower()] = sss[1]; } } t._values = d; if (d.ContainsKey(tokenKey)) { t.Token = d[tokenKey]; } if (d.ContainsKey(tokenSecretKey)) { t.TokenSecret = d[tokenSecretKey]; } return t; }
/// <summary> /// /// </summary> /// <param name="authorizeInfo"></param> /// <param name="oauthVerifier"></param> /// <returns></returns> public AccessTokenInfo GetAccessToken(AuthorizeInfo authorizeInfo, String oauthVerifier) { AuthorizeInfo ai = authorizeInfo; SignatureInfo si = OAuthClient.GenerateSignature(new Uri(this.AccessTokenUrl), this.ConsumerKey, this.ConsumerSecret , ai.RequestToken, ai.RequestTokenSecret, "POST", OAuthClient.GenerateTimeStamp(), OAuthClient.GenerateNonce() , OAuthClient.SignatureTypes.HMACSHA1); HttpClient cl = new HttpClient(String.Format("{0}?{1}&oauth_verifier={2}&oauth_signature={3}", this.AccessTokenUrl , si.NormalizedRequestParameters, oauthVerifier, si.Signature)); String s = cl.GetBodyText(); return(AccessTokenInfo.Create(s, "oauth_token", "oauth_token_secret")); }
/// <summary> /// /// </summary> /// <param name="requestToken"></param> /// <param name="requestTokenSecret"></param> /// <returns></returns> public AccessTokenInfo GetAccessToken(String requestToken, String requestTokenSecret) { String nonce = OAuthClient.GenerateNonce(); String timestamp = OAuthClient.GenerateTimeStamp(); String url = this.AccessTokenUrl; SignatureInfo si = OAuthClient.GenerateSignature(new Uri(url), this.ConsumerKey, this.ConsumerSecret , requestToken, requestTokenSecret, "POST", timestamp, nonce, OAuthClient.SignatureTypes.HMACSHA1); HttpClient cl = new HttpClient(String.Format("{0}?{1}&oauth_signature={2}" , url, si.NormalizedRequestParameters, si.Signature)); String result = cl.GetBodyText(); return(AccessTokenInfo.Create(result, "oauth_token", "oauth_token_secret")); }