LANG SELRCT

コードを書く場所

2019年4月3日水曜日

zendesk APIでチケットを作成したい


事前準備
ファイル > プロジェクトのプロパティ > スクリプトのプロパティに zendeskのapi_tokenとemailを保存しておきます。


関連記事

zendeskのAPI TOKENを取得したい



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

function createTicket() {
  var options = getOptions();
  var url = base_url + '/tickets.json';
  UrlFetchApp.fetch(url, options);
}

function getPayload() {
  var payload = {
    "ticket": {
      "subject": "created by API",
      "comment": {
        "body": "add internal comment",
        "public": false//Internal noteにしたい場合はfalse
      },
      "tags": ["important"]
//      "custom_fields": [
//        {
//        "id": ID,
//        "value": "tag"
//        },
//        {
//        "id": ID,
//        "value": "value1"
//        }
//      ]
    }
  }
  var json = JSON.stringify(payload);
  return json;
}

function getOptions() {
  var options = {
    "method": "post",
    "contentType": "application/json",
    "headers": getHeaders(),
    "payload": getPayload()
  }
  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);
}