LANG SELRCT

コードを書く場所

2019年4月15日月曜日

Zendesk APIでカスタムフィールドの値に一致するチケットを抽出したい(fieldValue:値)


「このカスタムフィールド」で「この値」が入っているチケットを検索できないかと思っ手調べてみると、現状の仕様ではできないらしい

ということが書かれていました
https://support.zendesk.com/hc/en-us/community/posts/209222988-How-to-search-tickets-by-using-custom-field-



代わりといってはなんですが(と僕が言うものなんですが)

fIeldValue: 値

という形で
すべてのカスタムフィールドを対象に
指定した値を持つチケットを取得することはできるらしい

例えば一意の値をあるカスタムフィールドに入れておいて、その値でAPIをたたけば一発でその値を持つチケットを見つけられそう

今欲しいのはそれなので試してみた

そして実現したコード


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

function getTicket() {
  var options = getOptions();
  var url = base_url + '/api/v2/search.json?query=fieldValue:hello'
  var response = UrlFetchApp.fetch(url, options);
  Logger.log(response);
}

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

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

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

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


関連記事

Zendesk APIで指定したチケットの情報を取得したい


参考

Searching custom ticket fields
https://support.zendesk.com/hc/en-us/articles/203663206#topic_wly_fev_uc