private HttpRequestMessage CreateRequest() { var oauth = new OAuthHeaderGenerator(TwitterUrl.REQUEST_TOKEN, WebRequestMethods.Http.Post); oauth.SetAcessTokenAndSecret("", ""); oauth.AddParameter("oauth_callback", AppConfig.Singleton.TwitterCallbackUrl); var request = new HttpRequestMessage() { RequestUri = new Uri(TwitterUrl.REQUEST_TOKEN), Method = HttpMethod.Post, }; request.Headers.Add("Authorization", oauth.Header); return(request); }
public void ComputedValueTestWhenRequestToken() { var mockUtilMethods = new Mock <UtilMethods>(); mockUtilMethods.Setup((utilMethods) => utilMethods.RandomString(It.IsAny <int>())).Returns("JCKNUMB75U"); mockUtilMethods.SetupGet((utilMethods) => utilMethods.UnixTimeSeconds).Returns(1617356469); UtilMethods.Singleton = mockUtilMethods.Object; MockUtil.mockAppConfig(); // ↓postmanで作成した値 var signatureExpect = "hNjZJBPWF/Toavf2ESTuntujkZg="; var headerExpect = "OAuth oauth_callback=\"https%3A%2F%2Flocalhost%3A8000\",oauth_consumer_key=\"ULoMphmQLJ1gVY0q64Vp55UCc\",oauth_nonce=\"JCKNUMB75U\",oauth_signature_method=\"HMAC-SHA1\",oauth_timestamp=\"1617356469\",oauth_version=\"1.0\",oauth_signature=\"hNjZJBPWF%2FToavf2ESTuntujkZg%3D\""; var OAuthHeaderGenerator = new OAuthHeaderGenerator(TwitterUrl.REQUEST_TOKEN, WebRequestMethods.Http.Post); OAuthHeaderGenerator.SetAcessTokenAndSecret("", ""); OAuthHeaderGenerator.AddParameter("oauth_callback", "https://localhost:8000"); Assert.Equal(signatureExpect, OAuthHeaderGenerator.Signature); Assert.Equal(headerExpect, OAuthHeaderGenerator.Header); }
public string GetAccountName(TwitterAccountCredentials credentials) { var oauth = new OAuthHeaderGenerator(TwitterUrl.VERIFY_CREDENTIALS, WebRequestMethods.Http.Get); oauth.SetAcessTokenAndSecret(credentials.AccessToken, credentials.AccessTokenSecret); var request = new HttpRequestMessage() { RequestUri = new Uri(TwitterUrl.VERIFY_CREDENTIALS), Method = HttpMethod.Get, }; request.Headers.Add("Authorization", oauth.Header); var json = httpClient.SendAsync(request).Result.Content.ReadAsStringAsync().Result; var obj = JObject.Parse(json); return(obj["name"].ToObject <string>()); }
public async Task DestroyFriendships() { List <string> unfollowedUsers = new List <string>(); foreach (var inactiveUser in inactiveUsers) { _httpClient.DefaultRequestHeaders.Clear(); OAuthHeaderGenerator oAuthHeaderGenerator = new OAuthHeaderGenerator(_consumerKey, _consumerSecret, _accessToken, _accessTokenSecret); string url = $"https://api.twitter.com/1.1/friendships/destroy.json?screen_name={inactiveUser.Name}"; string oAuth = oAuthHeaderGenerator.GenerateOAuthHeader("POST", url); _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("OAuth", oAuth); try { HttpResponseMessage response = await _httpClient.PostAsync(url, null); if (response.IsSuccessStatusCode) { unfollowedUsers.Add(inactiveUser.Name); } else { string content = await response.Content.ReadAsStringAsync(); Console.WriteLine(content); File.WriteAllLines("unfollowed-users.txt", unfollowedUsers); } } catch (Exception ex) { Console.WriteLine(ex.Message); File.WriteAllLines("unfollowed-users.txt", unfollowedUsers); } } File.WriteAllLines("unfollowed-users.txt", unfollowedUsers); }