Как добавить значение в настраиваемое поле в Trello с помощью сценариев Google? - PullRequest
3 голосов
/ 04 ноября 2019

При использовании сценариев Google и API Trello у меня возникают проблемы при отправке запроса на установку опций для предварительно заданного настраиваемого поля trello.

Это то, что API-интерфейс trello предлагает для javascript, однако, поскольку я использую сценарии Google, я вынужден использовать класс Google UrlFetchApp, как мне это сделать?

var url = "https://api.trello.com/1/cards/{idCard}/customField/{idCustomField}/item?token={yourToken}&key={yourKey}";
var data = {value: { number: "42" }};
fetch(url, { body: JSON.stringify(data), method: 'PUT', headers: {'content-type': 'application/json'}})
.then((resp) => resp.json()) //Error would occur here 
.then((data) => console.log(JSON.stringify(data, null, 2)))
.catch((err) => console.log(JSON.stringify(err, null, 2)))

https://developers.trello.com/reference#customfielditemsid

Если бы я попытался запустить этот пример в скриптах Google, я получил бы ошибку: Syntax error. (line 135, file "Code")

Итак, я попытался использоватьURLFetchApp:

  var url = "https://api.trello.com/1/cards/" + cardId + "/customField/{customFieldIDHere}/item?token={TokenHere}&key={KeyHere}";
  var data = {value: { "text": "42" }};
  var payload = {"customField" : data};
  var options = {"method" : "put",
                  "payload" : payload};
  UrlFetchApp.fetch(url,options); //Error would occur here

https://developers.google.com/apps-script/reference/url-fetch

Но я получаю эту ошибку: "Request failed for https://api.trello.com returned code 400. Truncated server response: Invalid value for custom field type"

Я также пытался сделать var mData = JSON.stringify(data); и использовать mData вварианты, но, к сожалению, все еще получают ту же ошибку

1 Ответ

1 голос
/ 06 ноября 2019

Проблема была в том, что мне не нужно было var = {customField" : data} Вместо этого все, что мне нужно было сделать, это:

var options = {
  "method" : "put",
  "payload" : JSON.stringify(data),
  "contentType": "application/json"
};
...