1

Twitter への投稿に使用できるライブラリをいくつか見ました。しかし、後で他のソーシャルネットワークにもこれを拡張する必要があるため、独自のものを作成したいと考えています。

私は RESTSharp を使用して、物事を少し簡単にしています。

私のコントローラーでは、2つのメソッドを書きました..

public ActionResult TwitterLogin()
        {
            var authorizeUrl = TwitterService.Authorize();
            if(!String.IsNullOrEmpty(authorizeUrl))
            {
                return Redirect(authorizeUrl);
            }
            else
            {
                return View();
            }
        }

public ActionResult AuthorizeCallback()
        {
            TwitterService.AuthorizeCallback();
            return View();
        }

ツイッターサービスで

public string Authorize()
    {
        client = new RestClient(BaseUrl) {Authenticator = OAuth1Authenticator.ForRequestToken(ConsumerKey, ConsumerSecret, CallbackUrl)};
        var request = new RestRequest("oauth/request_token", Method.POST);
        var response = client.Execute(request);
        if(response.StatusCode == HttpStatusCode.OK)
        {
            var qs = HttpUtility.ParseQueryString(response.Content);
            oauth_token = qs["oauth_token"];
            oauth_token_secret = qs["oauth_token_secret"];

            request = new RestRequest("oauth/authorize");
            request.AddParameter("oauth_token", oauth_token);
            return  client.BuildUri(request).ToString();
        }
        
        return String.Empty;
    }

public void AuthorizeCallback()
    {
        var verifier = "123456"; // <-- Breakpoint here (set verifier in debugger)
        var request = new RestRequest("oauth/access_token", Method.POST);
        client.Authenticator = OAuth1Authenticator.ForAccessToken(ConsumerKey, ConsumerSecret, oauth_token, oauth_token_secret, verifier);
        var response = client.Execute(request);

        var qs = HttpUtility.ParseQueryString(response.Content);
        oauth_token = qs["oauth_token"];
        oauth_token_secret = qs["oauth_token_secret"];
    }

今、私の懸念は、私がそれを正しく行っているかどうかです。

Oauthに関しては、私が理解したことから、Twitterからリクエストトークンを作成し、ユーザーにそれを承認してもらい、それを使用してアクセストークンを取得し、それを使用して他のリクエストに署名します。私は主にこのリンクを見てこのコードを書きました https://github.com/restsharp/RestSharp/blob/master/RestSharp.IntegrationTests/oAuth1Tests.cs

これをもっとうまく書けるかどうか?また、RestSharp を使用して OAuth リクエストを作成し、API のような twitter を使用する方法について、誰かが私を案内してくれます。インターネット参照のほとんどは、カスタム ライブラリに基づいています。

4

0 に答える 0