API で status を更新したくて方法を探しました
まずステータスの一覧がほしい
ありました
https://developer.zendesk.com/rest_api/docs/support/tickets#json-format
statusの種類は
"new", "open", "pending", "hold", "solved", "closed"
日本語にするとこんなかな
新規, オープン, 保留中, 待機中, 解決済み, 終了
コード.gs内の
"ticket": {
"status": "pending"
}
で設定してやるとよさそう
コード.gs
var base_url = "https://NAME.zendesk.com/api/v2/";
function run(zendeskId) {//本番はzendeskIdを受け取って実行する想定
var zendeskId = 6;//
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": {
"status": "pending"
}
}
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);
}
|
参考
Tickets
https://developer.zendesk.com/rest_api/docs/support/tickets#json-format