· 6 years ago · Jan 18, 2019, 06:18 AM
1public ActionResult TwitterLogin()
2 {
3 var authorizeUrl = TwitterService.Authorize();
4 if(!String.IsNullOrEmpty(authorizeUrl))
5 {
6 return Redirect(authorizeUrl);
7 }
8 else
9 {
10 return View();
11 }
12 }
13
14public ActionResult AuthorizeCallback()
15 {
16 TwitterService.AuthorizeCallback();
17 return View();
18 }
19
20public string Authorize()
21 {
22 client = new RestClient(BaseUrl) {Authenticator = OAuth1Authenticator.ForRequestToken(ConsumerKey, ConsumerSecret, CallbackUrl)};
23 var request = new RestRequest("oauth/request_token", Method.POST);
24 var response = client.Execute(request);
25 if(response.StatusCode == HttpStatusCode.OK)
26 {
27 var qs = HttpUtility.ParseQueryString(response.Content);
28 oauth_token = qs["oauth_token"];
29 oauth_token_secret = qs["oauth_token_secret"];
30
31 request = new RestRequest("oauth/authorize");
32 request.AddParameter("oauth_token", oauth_token);
33 return client.BuildUri(request).ToString();
34 }
35
36 return String.Empty;
37 }
38
39public void AuthorizeCallback()
40 {
41 var verifier = "123456"; // <-- Breakpoint here (set verifier in debugger)
42 var request = new RestRequest("oauth/access_token", Method.POST);
43 client.Authenticator = OAuth1Authenticator.ForAccessToken(ConsumerKey, ConsumerSecret, oauth_token, oauth_token_secret, verifier);
44 var response = client.Execute(request);
45
46 var qs = HttpUtility.ParseQueryString(response.Content);
47 oauth_token = qs["oauth_token"];
48 oauth_token_secret = qs["oauth_token_secret"];
49 }