【问题标题】:Connecting to Twitter - RestSharp OAuth2连接到 Twitter - RestSharp OAuth2
【发布时间】:2013-09-24 11:13:17
【问题描述】:

我正在尝试使用这些说明连接到 Twitter API

https://dev.twitter.com/docs/auth/application-only-auth

这是我的代码:

var baseUrl = "http://api.twitter.com/";
var client = new RestClient(baseUrl);                     
var request = new RestRequest("/oauth2/token", Method.POST);

var concat = ConfigurationManager.AppSettings["TwitterConsumerKey"] + ":" +
     ConfigurationManager.AppSettings["TwitterConsumerSecret"];

string encodeTo64 = concat.EncodeTo64();

request.AddHeader("Authorization", "Basic " + encodeTo64);
request.AddHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
request.AddBody("grant_type=client_credentials");
IRestResponse restResponse = client.Execute(request);

EncodeTo64

static public string EncodeTo64(this string toEncode)
    {
        byte[] toEncodeAsBytes
              = System.Text.ASCIIEncoding.ASCII.GetBytes(toEncode);
        string returnValue
              = System.Convert.ToBase64String(toEncodeAsBytes);
        return returnValue;
    }

Response.Content 如下

"{\"errors\":[{\"code\":170,\"label\":\"forbidden_missing_parameter\",\"message\":\"Missing required parameter: grant_type\"}]}"

这部分错了吗?

request.AddBody("grant_type=client_credentials");

我已验证我的凭据是正确的(我之前遇到过该错误,但已解决,所以应该没问题)。

【问题讨论】:

    标签: twitter oauth-2.0 .net-4.5 restsharp


    【解决方案1】:

    Twitter 页面上的说明让我很困惑。 "请求的主体必须是 grant_type=client_credentials。"

    至于Restsharp,不是AddBody,而是AddParameter。

    所以:

    request.AddParameter("grant_type", "client_credentials");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-13
      • 2015-10-08
      • 1970-01-01
      • 2015-10-19
      • 1970-01-01
      • 2017-07-03
      • 1970-01-01
      • 2016-09-12
      相关资源
      最近更新 更多