1

这感觉应该很容易,但......它不是。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);

结果总是说身份验证请求无效并且未经授权。尝试了一堆不同的组合,查看了作为 RestSharp 库一部分的测试,并阅读了 Desk.com 文档中的每一个字眼。只是不确定接下来要尝试什么。

4

2 回答 2

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");
于 2013-03-07T19:09:00.527 回答
0

我只想说,在学习了很多关于使 Desk API 与 C# 一起使用的示例之后,您的实际上是唯一有效的示例。

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

其次(对不起,如果我说的很明显),我假设您没有使用您在此处指定的 ("key", "secret", "token", "token secret") 参数,而是使用有效的参数。您很可能会这样做,但也许您可能已经从其他地方找到并复制了那段代码,并且可能错过了填写您的信息。

编辑:自从我第一次回答以来,我已经组装了一个小型(非常小的)SDK,可用于连接和使用 C# 中的 API。你可以在这里获取源代码:http: //danielsaidi.github.com/desk-csharp-sdk/

希望你让它工作。

于 2013-01-28T14:19:04.907 回答