LANG SELRCT

コードを書く場所についてはこちら

2019年4月11日木曜日

zendesk APIでカスタムフィールドを更新したい


zendeskのドロップダウンフィールドに値を入れたくて書いたコード



コード.gsの

    "ticket": {
      "custom_fields": [
        {
        "id": "カスタムフィールドのID",
        "value": ""
        }
      ]

でカスタムフィールドIDを指定して値を入れる



コード.gs
var base_url = "https://NAME.zendesk.com/api/v2/";

function run(zendeskId) {//本番はzendeskIdを受け取って実行する想定
  var zendeskId = 7;//
  putTicketById(zendeskId);
}

function putTicketById(zendeskId) {
  var url = base_url + 'tickets/update_many.json?ids=' + zendeskId 
  var options = getOptions();
  UrlFetchApp.fetch(url, options);
}


function getPayload() {
  var payload = {
    "ticket": {
      "custom_fields": [
        {
        "id": カスタムフィールドのID,
        "value": "入れたい値"
        }
      ]
    }
  }
  var json = JSON.stringify(payload);
  return json;
}

function getOptions() {
  var options = {
    "method": "put",
    "contentType": "application/json",
    "headers": getHeaders(),
    "payload": getPayload()
  }
  return options;
}

function getHeaders() {
  var headers = {
    "Authorization": "Basic " + getZendeskToken()
  }
  return headers;
}

function getZendeskToken() {
  return Utilities.base64Encode(getProp('email') + "/token:" + getProp('api_token'))
}

function getProp(key) {
  return PropertiesService.getScriptProperties().getProperty(key);
}


参考

カスタムフィールドを指定してチケットを作成
https://support.zendesk.com/hc/ja/articles/204099046#4