2013-09-24 4 views
5

は私のコードです:Twitterへの接続 - 私はここでは、これらの命令</p> <p><a href="https://dev.twitter.com/docs/auth/application-only-auth" rel="noreferrer">https://dev.twitter.com/docs/auth/application-only-auth</a></p> <p>でTwitterのAPIに接続しようとしていますRestSharpのOAuth2

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"); 

私は自分の資格情報が正しいことを確認しました(以前はそのエラーが発生しましたが、解決していますので問題ありません)。

答えて

2

Twitterのページの手順がわかりません。 "要求の本体はgrant_type = client_credentialsでなければなりません。"

Restsharpの場合、AddBodyではなくAddParameterです。だから、

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