对于非自定义字段,我的项目中的 API 运行良好,但文档似乎并没有真正起作用,无法解释使用 c sharp 更新自定义字段的实际放置请求格式应该是什么。
我有以下内容:
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 选择的值。经过一番搜索,我发现我应该使用 AtTask 的 API 文档中的“JSON 编辑”部分,但是,我似乎无法找出正确的语法。
我在尝试之前的完整网址是:
/attask/api/proj?method=put&sessionID=XXXXX&id=XXXXXX&updates={DE:TestNumber:1234}
(这似乎与这里的 API DOCS rec 不一致http://developers.attask.com/api-docs/#JSONEdits)但我每次都会收到500 Internal Server 错误。
我已确认我已正确登录。
任何建议或意见,将不胜感激。
更新: 我仍然无法让它工作。我发现了另一篇文章(搜索“AtTask API 更新自定义复选框字段中的多个值”),其中有人提到了自定义复选框表单:
PUT /attask/api/v3.0/task/xxxxxxxxxxxxxxxxxx?updates={DE:Labels=["a","b","c"]}
但我不确定如何使用 C Sharp 直接传递此类数据,因为它不允许双引号,当我添加转义字符时,我仍然会收到500 internal server error。我通过使用“发布”方法%22
代替引号,但无论我在看跌期权上做什么,它都不起作用。
我们的 AtTask 顾问提到我可能需要为自定义表单包含我的 categoryId,所以我也将它添加到我的查询字符串中,但无济于事。
我已经下载了 C Sharp 的“AtTask 示例”(位于 developer.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,“更新”也会失败。