Actualmente estoy tratando de hacer una llamada a la API para actualizar varios boletos a la vez usando ID de boletos. Estas ID de boletos se almacenan en Google Sheets ya que tengo el script ejecutándose allí. ¡Agradecería que alguien compartiera cómo usar el método REST y hacerlo funcionar! ¡Gracias!
Problema: no estoy seguro de cómo actualizar varios tickets usando lo siguiente
Si intento con 1 ID de ticket, ejemplo PUT https://company.zendesk.com/api/v2/tickets/12345 Esto es de https://developer.zendesk.com/api-reference/ticketing/tickets/tickets/ #actualización-ticket . Esto solo actualizará 1 ticket, justo.
Código original: PUT /api/v2/tickets/{ticket_id} Sé que debo reemplazar {ticket_id} con un número de boleto. Si pongo algo como https://company.zendesk.com/api/v2/tickets/{ticket_id} me arrojará un error.
Cuando se trata de múltiples: (Fuente: https://developer.zendesk.com/api-reference/ticketing/tickets/tickets/#update-many-tickets ). ¿Cómo escribo el código de manera que pueda leer varias identificaciones de boletos a la vez sin tener que repetirlo 10 veces si hay 10 boletos?
PUT https://company.zendesk.com/api/v2/tickets/update_many
El ejemplo de Zendesk lo dice así:
{ "tickets": [ { "id": 1, "status": "solved" }, { "id": 2, "status": "pending" } ] }Cuando vi su pregunta, pensé que su objetivo podría lograrse modificando este script de muestra . Pero, a partir de su pregunta, en su situación, pensé que cuando se muestra un script modificado de muestra, podría ser útil para usted y otros usuarios. Así que publiqué un guión modificado en lugar de la pregunta duplicada.
Este script recupera los valores de la hoja de cálculo. Por lo tanto, configure la id y el status en las columnas "A" y "B" de la fila del encabezado. Y, establezca los valores de id y status .
Copie y pegue la siguiente secuencia de comandos en el editor de secuencias de comandos de la hoja de cálculo de Google. Y por favor establezca las variables.
function sample() { var url = 'https://{subdomain}.zendesk.com/api/v2/tickets/update_many.json'; // Please set your URL. var user = '###'; // Please set your user name. var pwd = '###'; // Please set your passworkd. var sheetName = "Sheet1"; // Please set the sheet name. var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName); var [headers, ...rows] = sheet.getDataRange().getDisplayValues(); var tickets = rows.map(r => { var temp = {}; headers.forEach((h, j) => { if (r[j] != "") temp[h] = r[j]; }); return temp; }); var options = { 'method': 'PUT', 'headers': { 'Authorization': "Basic " + Utilities.base64Encode(user + ':' + pwd) }, 'payload': JSON.stringify({ tickets }), 'contentType': 'application/json', 'muteHttpExceptions': true }; var response = UrlFetchApp.fetch(url, options); console.log(response.getContentText()); } Cuando los valores se recuperan de la hoja de cálculo, JSON.stringify({ tickets }) es el siguiente.
{ "tickets": [ {"id": "1", "status": "status1"}, {"id": "2", "status": "status2"}, {"id": "3", "status": "status3"}, , , , ] }user y pwd no son válidos, se produce un error. En ese momento, confirme sus valores nuevamente.PUT /api/v2/tickets/update_many , el documento dice Accepts an array of up to 100 ticket objects, or a comma-separated list of up to 100 ticket ids. . Tenga cuidado con esto.