如何通过Asana API添加标签

时间:2012-06-30 20:32:09

标签: asana

我正在尝试进行简单的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" "从动":[{" ID":" MY_USER_ID"}]}}

我收到:

{"错误":[{"消息":"无效字段:{\"数据\":{\" 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 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

总结其他任何感兴趣的人:发布到端点https://app.asana.com/api/1.0/tags,您可以创建这样的标记:

{“data”:{“工作区”:1234567,“名称”:“newtagname”,“粉丝”:[45678,6789]}}

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

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

问题的第二部分 - 使用示例代码 - 看起来好像是在尝试添加标记。但是,现在Asana API不支持此功能(至少根据API文档)。您可以更新现有标记,但不能添加标记。

因此,总结一下:此时API不允许您向任务添加关注者或创建新标记。