0

J'ai le script Google App suivant qui renvoie finalement une matrice, mais je suis capable de modifier les lignes et d'utiliser la méthode appendRow parce que j'essaie de l'appeler fonction.Impossible de générer ou enregistrer la réponse de l'API à partir de la fonction personnalisée dans la feuille Google

En consultant d'autres questions connexes sur stackoverflow et la documentation GAS, quelle que soit la fonction personnalisée renvoyée, elle doit s'afficher dans la cellule à partir de laquelle elle a été appelée.

Je suis en mesure de voir le retour en utilisant le GAS Logger dans l'éditeur de script Google, mais c'est tout. Comment puis-je imprimer sur la feuille à la place ou sinon enregistrer et exporter cette réponse?

La réponse de l'échantillon ressemble:

[[diy_move, forward_mail, update_account, renters_insurance, recommended_provider, utility, home_service, offer, share], 
[forward_mail, update_account, utility, home_service, offer, share]] 

// Get current row 
 
function getActiveRow() { 
 
    var sheet = SpreadsheetApp.getActiveSpreadsheet(); 
 
    var activeRow = sheet.getActiveCell().getRow(); 
 

 
    return activeRow; 
 
} 
 

 
// call updater api 
 
function getSteps() { 
 
    var values = SpreadsheetApp.getActiveSheet().getDataRange().getValues(); 
 
    var userIds = []; 
 
    
 
    var sheet = SpreadsheetApp.getActiveSheet(); 
 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
 
    var sss = ss.getSheets()[0]; 
 
    var range = sheet.getRange(getActiveRow(), 1, 1, 1); 
 
    var id = range.getValues(); 
 
    
 
    function first(list) { 
 
    return list[0]; 
 
    } 
 
    
 
    function getProperty(property) { 
 
    return function (item) { 
 
     return item[property]; 
 
    } 
 
    } 
 
    
 
    var getCode = getProperty('code'); 
 
    
 
    var userIds = values.map(first); 
 
    
 
    var headers = { 
 
    // auth 
 
    "Content-Type": "application/json", 
 
    "app": "company", 
 
    "uid": "[email protected]", 
 
    "client": "*****", 
 
    "access-token": "*****" 
 
    }; 
 
    
 
    
 
    var options = { 
 
    "method": "GET", 
 
    "headers": headers 
 
    //"muteHttpExceptions": true 
 
    }; 
 
    
 
    function callApi(id) { 
 
    var url = "http://api.updater.com/v2/item_definitions?user_id=" + id; 
 
    var response = UrlFetchApp.fetch(url, options) 
 
    var json = response.getContentText(); 
 
    var data = JSON.parse(json); 
 
    
 
    return data.map(getCode); 
 
    } 
 
    
 
    
 
    function createSupersteps(ids) { 
 
    return ids.map(callApi); 
 
    } 
 
    Logger.log(createSupersteps(userIds)); 
 
    sss.appendRow(createSupersteps(userIds)); 
 
    //createSupersteps(userIds) 
 
}

Répondre

0

Essayez d'ajouter [] pour sss.appendRow(createSupersteps(userIds)); rendre à sss.appendRow([createSupersteps(userIds)]);.

Sur la base de l'échantillon de documentation Code appendRow(rowContents)

Ajoute une ligne à la feuille de calcul. Cette opération est atomique; il évite les problèmes où un utilisateur demande la dernière ligne, puis écrit sur cette ligne et une mutation intervient entre l'obtention de la dernière ligne et l'écriture.

var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet = ss.getSheets()[0]; 

// Appends a new row with 3 columns to the bottom of the 
// spreadsheet containing the values in the array 
sheet.appendRow(["a man", "a plan", "panama"]); 

Voici mon exemple de code:

function insert(){ 
var ss = SpreadsheetApp.openById('FILE_ID'); 
var sheet = ss.getSheets()[0]; 
var sample = "sample"; 
// Appends a new row with 3 columns to the bottom of the 
// spreadsheet containing the values in the array 
sheet.appendRow([sample]); 
} 

Essayer d'ajouter à l'aide sheet.appendRow (échantillon); donne une erreur enter image description here

Espérons que cela aide.

+0

Malheureusement, cela n'a pas aidé - je reçois toujours l'erreur 'Vous n'avez pas la permission d'appeler appendRow' – phizzy