Desk.com和RestSharp(oAuth)

时间:2012-12-02 23:55:29

标签: c# oauth restsharp

这感觉应该很容易,但......不是。对于Desk.com来说,没有任何库是绝对无济于事的,并且(在我看来)文档非常薄且缺乏。

无论如何,我正在尝试使用RestSharp做一些简单的事情:抓住最近的案例。我正在使用单一访问令牌方法,因为我们不需要像任何用户那样进行交互。

以下是代码:

        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文档的每个微薄字。只是不确定下一步该尝试什么。

2 个答案:

答案 0 :(得分: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");

答案 1 :(得分:0)

我只是想说,经过大量关于使用C#使Desk API工作的例子之后,你的实际上是唯一的工作。

我没有使用您在上面指定的资源进行测试,但是将您的代码与“account / verify_credentials.json”资源一起使用。它为我返回一个OK响应,因此您的代码可以正常工作。所以,首先......谢谢:)

第二个(对不起,如果我说的那么明显),我假设你没有使用你在这里指定的(“密钥”,“秘密”,“令牌”,“令牌秘密”)参数,但使用有效那些。你最有可能这样做,但是你可能很少有机会从其他地方找到并复制这段代码,也许错过了填写你的信息。

编辑:自从我的第一个回答以来,我已经整理了一个小的(非常小的)SDK,可以用来连接和使用C#中的API。您可以在此处获取源代码:http://danielsaidi.github.com/desk-csharp-sdk/

希望你能开始工作。