ATTask API - 使用API​​和C Sharp更新自定义字段

时间:2014-04-04 19:14:34

标签: attask

我的API在非自定义字段的项目中运行良好,但文档似乎并没有解释使用c sharp更新自定义字段的实际put请求格式应该是什么。

我有以下内容:

PROJECT类型的自定义字段名为" TestNumber"。

我可以使用网络请求轻松搜索:

/attask/api/proj/search?sessionID=XXXXXXX&ID=XXXXX&fields=DE:TestNumber

所以我知道该特定自定义字段的语法是正确的。

我还可以对非自定义字段进行基本更新:

/attask/api/proj?method=put&sessionID=XXXXX&id=XXXXX&name=TEST RESOURCES` 

并正确更新。

但无论我做什么,我都无法弄清楚如何改变那个" TestNumber"自定义字段,使用API​​选择的值。经过一番搜索,我发现我应该使用" JSON Edits"但是,AtTask的API文档中的一部分,我似乎无法弄清楚正确的语法。

尝试之前我的全部是:

/attask/api/proj?method=put&sessionID=XXXXX&id=XXXXXX&updates={DE:TestNumber:1234}

(这似乎与API DOCS rec http://developers.attask.com/api-docs/#JSONEdits相吻合)但每次都会出现 500内部服务器错误

我已经确认我已正确登录。

非常感谢任何建议或建议。

更新 我仍然无法让这个工作。我找到了另一篇文章(搜索" AtTask API在自定义复选框字段和#34中更新多个值;),其中提到这个用户的自定义复选框表单:

PUT /attask/api/v3.0/task/xxxxxxxxxxxxxxxxxx?updates={DE:Labels=["a","b","c"]}

但我不确定如何直接使用C Sharp传递那种数据,因为它不允许双引号,当我添加转义字符时,我仍然得到 500内部服务器错误 。我得到了" Post"使用%22代替引号的方法,但不管我在看跌期权做什么,它都不起作用。

我们的AtTask顾问提到我可能需要将自己的categoryId包含在自定义表单中,所以我也将其添加到我的查询字符串中,但无济于事。

我已经下载了" AtTask示例"对于C Sharp(位于developers.attask.com上)并尝试使用他们使用的Update方法作为示例传递以下内容:

JToken project = client.Update(ObjCode.PROJECT, new { 
    ID = projectId, categoryID = "XXXXXXXXXXXXXXXX", 
    updates = "{DE:Total Feet of Line:1234}" });

正如我之前提到的,搜索工作正常并且完全返回我期望的内容:

JToken projects = client.Search(ObjCode.PROJECT, new { 
    ID = projectId, 
    fields = "DE:Total Feet of Line" });

生成以下网址:

/attask/api/proj/search?sessionID=XXXX&ID=XXXX&categoryID=XXXXX&fields=DE:Total Feet of Line

我终于尝试使用" Json Edits"使用非自定义字段,并且它与put方法一起工作,所以我在这些字段上的语法必定有问题,但我认为它应该是DE:FIELDNAME:"VALUE"。我错了吗?

我觉得自己在试图解决这个问题方面正处于正确的轨道上,但我发现很难相信没有支持或其他人这样做过。看起来基本需要能够从API更新自定义字段...

我也尝试使用自定义复选框完全跟随其他个人示例,即使"搜索"按预期返回json,"更新"失败。

1 个答案:

答案 0 :(得分:2)

你是对的" DE:FIELDNAME":" VALUE"。

尝试使用以下网址更新自定义字段:确保更改MYCOMPANY,YOUR_ID,YOUR_CAT_ID,YOUR_FIELD,YOUR_VALUE,YOUR_LOGIN_USERNAME,YOUR_LOGIN_PASSWARD。

MYCOMPANY.attasksandbox.com/attask/api/proj?updates = {" ID":" YOUR_ID""的categoryID":"&YOUR_CAT_ID #34;" DE:YOUR_FIELD":" YOUR_VALUE"}&安培;方法=放&安培;用户名= YOUR_LOGIN_USERNAME&安培;密码= YOUR_LOGIN_PASSWARD

这对我有用。如果这对您有用,请告诉我