Workfront 问题中带有空格的自定义字段

Custom fields with spaces in Workfront issues

拜托,你能帮我 create/update 个名称中包含 space 的自定义字段中的项目吗?

我们有一个带有自定义字段的项目 Contact phone。可以从浏览器正确使用该字段。 https://github.com/Workfront/workfront-api-examples-csharp 没有帮助。我能够在问题的详细信息中添加数据。我想将其添加到特定的自定义字段中 (create/update)。

var client = new AtTaskRestClient(_url); // from the example
...
var description = $"Contact phone: {item.ContactPhone}";
client.Create(ObjCode.ISSUE, new { name = item.Name,
    description = description,
    projectID = _projectID });

client.Create 有一个对象作为最终参数。我们在构造函数中使用不能包含 "DE:Contact phone" = item.ContactPhone 的匿名类型。这个字段怎么写?

如果我们从浏览器插入值,读取 DE:Contact phone 工作正常:

JToken issues = client.Search(ObjCode.ISSUE, new { projectID = _projectID });
foreach (var issue in issues["data"].Children()) {
    var name = issue.Value<string>("name"); // correct
    var id = issue.Value<string>("ID"); // correct
    var fields = client.Get(ObjCode.ISSUE, id, new[] { "description", "DE:Contact phone"}); // correct

https://github.com/Workfront/workfront-api-examples-csharp/blob/master/AtTaskRestExample/AtTaskRestClient.cs

public JToken Create(ObjCode objcode, object parameters) {
    VerifySignedIn();
    string[] p = parameterObjectToStringArray(parameters, "sessionID=" + SessionID);
    JToken json = client.DoPost(string.Format("/{0}", objcode), p);
    return json;
}

我写了一个新函数 CreateEx,它接收一个字符串数组

public JToken Create(ObjCode objcode, string[] parameters) {
    VerifySignedIn();
    JToken json = client.DoPost(string.Format("/{0}", objcode), parameters);
    return json;
}

访问方式如下:

var client = new AtTaskRestClient(_url); // from the example
...
string[] parameteres =
    {
        $"name={issueName}",
        $"description={description}",
        $"projectID={_projectID}",
        $"sessionID={client.SessionID}",
        $"DE:Contact phone={contactPhone}"
    };
client.CreateEx(ObjCode.ISSUE, parameteres);