0

我正在尝试做一个简单的 Salesforce-Asana 集成。我有许多功能在工作,但在将标签添加到工作区时遇到了麻烦。由于我找不到有关 addTag 方法的文档,所以我有点猜测需要什么。

如果我将以下 JSON 发布到https://app.asana.com/api/1.0/workspaces/WORKSPACEID/tasks

{"data":{"name":"MyTagName","notes":"Test Notes"}}

标签在 Asana 中创建,但带有空白注释和名称字段。如果我尝试变得更花哨并发布:

{"data":{"name":"MyTagName","notes":"Test Notes","followers":[{"id":"MY_USER_ID"}]}}

我收到:

{"errors":[{"message":"无效字段:{\"data\":{\"name\":\"MyTagName\",\"notes\":\"Test Notes\",\"关注者\":[{\"id\":\"MY_USER_ID\"}]}}"}]}

我认为反斜杠可能意味着我的请求正在被帖子修改,尽管调试输出在帖子之前显示了一个格式正确的 json 字符串。

示例代码:

JSONGenerator jsongen = JSON.createGenerator(false);

jsongen.writeStartObject();
jsongen.writeFieldName('data');
jsongen.writeStartObject();
jsongen.writeStringField('name', 'MyTagName');
jsongen.writeStringField('notes', 'Test Notes');
jsongen.writeFieldName('followers');
jsongen.writeStartArray();
jsongen.writeStartObject();
jsongen.writeStringField('id', 'MY_USER_ID');
jsongen.writeEndObject();
jsongen.writeEndArray();
jsongen.writeEndObject();
jsongen.writeEndObject();

String requestbody = jsongen.getAsString();

HttpRequest req = new HttpRequest();
req.setEndpoint('https://app.asana.com/api/1.0/workspaces/WORKSPACEID/tags');
req.setMethod('POST');

//===Auth header created here - working fine===
req.setBody(requestbody);

Http http = new Http();
HTTPResponse res = http.send(req);

return res.getBody();

任何帮助表示赞赏。我没有使用 JSON 以及 Asana API 的经验。

4

4 回答 4

2

问题是我发布到了错误的端点。我应该使用 /tags 并在请求正文中包含 workspaceid 而不是工作空间/工作空间 ID/标签。

于 2012-07-01T20:53:58.897 回答
1

自从您发布此问题以来,Asana 的 API 和开发人员已经引入了标签。您的文档非常清楚地列出了您的问题的答案:

https://asana.com/developers/api-reference/tags

于 2013-03-29T20:28:41.130 回答
1

啊哈,所以你可以添加标签甚至设置关注者,尽管 API 没有提到你可以或声称关注者是只读的。

所以总结一下其他感兴趣的人:发布到端点https://app.asana.com/api/1.0/tags你可以创建一个这样的标签:

{“数据”:{“工作区”:1234567,“名称”:“新标签名称”,“关注者”:[45678, 6789] } }

其中 1234567 是您的工作区 ID,45678 和 6789 是您的新关注者。

于 2012-07-01T21:30:52.963 回答
0

我对你的问题有点困惑。您问“如何添加标签”,但问题的前半部分谈到了添加任务。您所描述的问题是您正在尝试设置任务的追随者,但根据 Asana 的 API 文档,追随者字段目前是只读的。这就是您收到错误的原因。您现在无法使用 API 设置关注者。

您问题的第二部分 - 带有示例代码 - 看起来您正在尝试添加标签。但是,目前 Asana API 不支持这一点(至少根据 API 文档)。您可以更新现有标签,但不能添加标签。

因此,总结一下:目前 API 不允许您将关注者添加到任务或创建新标签。

于 2012-07-01T20:36:34.623 回答