2012-12-02 25 views
1

這感覺應該很容易,但是......不是。它絕對無助於Desk.com沒有圖書館,而且文檔(在我看來)非常薄弱。Desk.com和RestSharp(oAuth)

無論如何,我試圖用RestSharp來做一些簡單的事情:抓住最近的情況。我使用Single Access Token方法,因爲我們不需要與任何用戶進行交互。

下面的代碼:

 var client = new RestClient(); 
     client.Authenticator = RestSharp.Authenticators.OAuth1Authenticator.ForProtectedResource("key","secret","token","token secret"); 
     client.BaseUrl = "http://xxx.desk.com/api/v1/"; 

     var request = new RestRequest(); 
     request.Method = Method.GET; 
     request.Resource = "cases.json?count=10&status=new"; 
     request.RequestFormat = DataFormat.Json; 

     var result = client.Execute(request); 

結果永遠只是說AUTH請求是無效的,未經批准。嘗試了一堆不同的組合,查看了作爲RestSharp庫一部分的測試,並閱讀了Desk.com文檔的每一個微不足道的單詞。只是不確定接下來要嘗試什麼。

回答

0

我只是想說,那就讓用C#臺API工作之後大量的實例後,你竟是一個沒有工作。

我沒有使用上面指定的資源進行測試,而是將您的代碼與「account/verify_credentials.json」資源一起使用。它爲我返回一個OK響應,所以你的代碼工作。所以,首先...謝謝:)

二(對不起,如果我說明明顯),我認爲你不使用(「鑰匙」,「祕密」,「令牌」,「令牌祕密「)參數,你在這裏指定它們,但使用有效的參數。你很可能會這樣做,但是可能有一個小小的機會,你可能從其他地方找到並複製了這段代碼,也許錯過了填寫你的信息的機會。

編輯:自從我的第一個答案,我已經放在一起可以用來連接到和使用C#中的API的小(非常小)的SDK。你可以在這裏獲取源代碼:http://danielsaidi.github.com/desk-csharp-sdk/

希望你能得到它的工作。

2

您可能已經知道了這一點,但是當您嘗試將查詢字符串添加到RestRequest的資源時,您會收到未經授權的消息。

我遇到了同樣的問題。 Daniel的「account/verify_credentials.json」也適用於我,所以我開始懷疑它是否與查詢字符串有關。

var request = new RestRequest(); 
request.Method = Method.GET; 
request.Resource = "cases.json"; 
request.RequestFormat = DataFormat.Json; 
request.AddParameter("count", 10); 
request.AddParameter("status", "new"); 
+0

解決了我的問題。我試圖設置資源中的參數。必須用參數代替它。 – Andreas