2014-07-19 67 views
1

我可以得到一個待辦事項沒有任何問題,但是當我在大本營張貼待辦事項我得到403禁止創建大本營TODO返回403禁止(restsharp,asp.net的MVC,大本營API)

這裏是我的代碼

CODE

var client = new RestClient() 
{ 
    BaseUrl = "https://basecamp.com/" + accountId + "/api/v1/projects/" + projectId + "/todolists/" + todolistId + "/todos.json" 
}; 

string baseCampClientId = WebConfigurationManager.AppSettings["bcClientId"]; 
string baseCampClientSecret = WebConfigurationManager.AppSettings["bcClientSecret"]; 
var request = new RestRequest(Method.POST); 
request.RequestFormat = DataFormat.Json; 
string json = JsonConvert.SerializeObject(todo); 
request.AddHeader("User-Agent", "MyApp ([email protected])"); 
request.AddHeader("Content-type", "application/json"); 
request.AddHeader("charset", "utf - 8"); 
request.AddHeader("Authorization", userInfo.BaseCampToken); 
request.AddParameter("client_id", baseCampClientId); 
request.AddParameter("client_secret", baseCampClientSecret); 
request.AddParameter("access_token", userInfo.BaseCampToken); 
request.AddBody(json); 
var result = client.Execute(request); 
string jsonResult = result.Content; 

的響應總是403 Forbidden

JSON的其中I S在請求主體到底是

JSON

"{\"content\":\"solve this thing\",\"due_at\":\"2014-07-10T00:00:00.0000000\",\"assignee\":{\"id\":\"1111111\",\"type\":\"Person\"}}" 

,這裏是請求的圖像

Response of The Call

請幫我解決這個403 forbidden問題

回答

1

好我試着只改變一個東西,而且它對我有效。我的改變是:

  1. client.Authenticator =新Auth2AuthorizationRequestHeaderAuthenticator(userInfo.BaseCampToken)爲 request.AddParameter( 「的access_token」,userInfo.BaseCampToken);

也嘗試從您的json數據中刪除「受理人」,如果有的話。

+0

謝謝,解決了它,但爲什麼要刪除一個受讓人?而不是在參數(basecamp api)不支持發送access_token我不得不將它發送到頭部..謝謝 –

+1

@NaveedAhmad我創建一個ToDo時發送Assignee,它適用於我。 –

+0

謝謝我明白了......現在工作得很好 –