我正在尝试做一个简单的 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 的经验。