Eri*_*edt 5 twitter restsharp oauth-2.0 .net-4.5
我试图通过这些说明连接到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);
Run Code Online (Sandbox Code Playgroud)
EncodeTo64
static public string EncodeTo64(this string toEncode)
{
byte[] toEncodeAsBytes
= System.Text.ASCIIEncoding.ASCII.GetBytes(toEncode);
string returnValue
= System.Convert.ToBase64String(toEncodeAsBytes);
return returnValue;
}
Run Code Online (Sandbox Code Playgroud)
Response.Content如下
"{\"errors\":[{\"code\":170,\"label\":\"forbidden_missing_parameter\",\"message\":\"Missing required parameter: grant_type\"}]}"
Run Code Online (Sandbox Code Playgroud)
这部分错了吗?
request.AddBody("grant_type=client_credentials");
Run Code Online (Sandbox Code Playgroud)
我已经验证我的凭据是正确的(我之前收到了这个错误,但解决了它,所以应该没问题).
Twitter 页面上的说明让我很困惑。“请求正文必须是 grant_type=client_credentials。”
至于Restsharp,它不是AddBody,而是AddParameter。
所以:
request.AddParameter("grant_type", "client_credentials");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1971 次 |
| 最近记录: |