【问题标题】:Requesting OAuth request token from Twitter API with RestSharp returns 404使用 RestSharp 从 Twitter API 请求 OAuth 请求令牌返回 404
【发布时间】:2012-08-19 17:38:03
【问题描述】:

我正在尝试使用 RestSharp 检索 Twitter OAuth 请求令牌,但无论我尝试什么,API 似乎都会以 404 响应。这是我的方法代码:

public void GetRequestToken()
{
    var client = new RestClient("https://api.twitter.com/1");

    var authenticator = OAuth1Authenticator.ForRequestToken(_consumerKey, _consumerSecret);
    authenticator.ParameterHandling = OAuthParameterHandling.HttpAuthorizationHeader;

    client.Authenticator = authenticator;

    var request = new RestRequest("/oauth/request_token", Method.POST);
    request.AddHeader("oauth_callback", "http%3A%2F%2Fmarkashleybell.com");
    var response = client.Execute(request);

    var qs = HttpUtility.ParseQueryString(response.Content);

    _token = qs["oauth_token"];
    _tokenSecret = qs["oauth_token_secret"];
}

_consumerKey_consumerSecret 是从 Web.config 设置中检索到的,我已经仔细检查过它们是否正确。 _token_tokenSecret 是包含此方法的类的私有成员变量。

请求的 API 网址正确。根据Twitter's documentation,请求似乎传递了所有正确的标头。

我尝试使用APIGee console 进行相同的 API 调用并查看我做错了什么,但即使 返回 404。

我在这里做错了什么?

【问题讨论】:

    标签: c# twitter oauth restsharp


    【解决方案1】:

    卫生部。事实证明,用于 OAuth 操作的 Twitter API URL 实际上与所有其他 Twitter API 调用的 URL 略有不同,并且省略了 API 版本段,所以这是一个真正的 404。

    还有一种更简洁的方法来提供内置于 RestSharp 身份验证器构造函数中的 oauth_callback 参数 — 作为参考,下面的代码完美运行:

    public void GetRequestToken()
    {
        var client = new RestClient("https://api.twitter.com"); // Note NO /1
    
        client.Authenticator = OAuth1Authenticator.ForRequestToken(
            _consumerKey, 
            _consumerSecret, 
            "http://markashleybell.com" // Value for the oauth_callback parameter
        );
    
        var request = new RestRequest("/oauth/request_token", Method.POST);
        var response = client.Execute(request);
    
        var qs = HttpUtility.ParseQueryString(response.Content);
    
        _token = qs["oauth_token"];
        _tokenSecret = qs["oauth_token_secret"];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-02
      • 2012-06-22
      • 2017-03-14
      • 2017-10-16
      • 2011-09-05
      • 2017-01-10
      • 2017-02-27
      • 2013-03-20
      相关资源
      最近更新 更多