Hi,
I'm trying to add rows to a table using the AppSheet API in a Google Apps Script.
The data I want to put in the table are from an external API.
Actually the process is working when I manually (for testing) put some JSON data (like 2 elements => 2 rows). But when I call the all process with some data nothing append.
So I was wondering, is it a sort of limitation (size?) that the AppSheet API allow ?
Thanks for any help !
That's my function :
function add_droit_acces_appsheet(data_to_add) {
Logger.log('data ร รฉcrire :');
Logger.log(data_to_add);
var app_id = 'xxxxxxxxxxxxxxxxxxxx';
var app_access_key = 'xxxxxxxxxxxxxxxxxxxxxxxx';
var table_name = 'droit_accรจs_dรฉclarรฉ';
// Construction URL
var url = "https://api.appsheet.com/api/v2/apps/" + app_id + "/tables/" + table_name + "/Action";
// Paramรจtres de la requรชte
var headers = {"Content-Type": "application/json", "ApplicationAccessKey": app_access_key};
// Corps de la requรชte pour ajouter des valeurs
var data = {
"Action": "Add",
"Properties": {
"Locale": "en-US",
},
"Rows": data_to_add
};
// Envoi de la requรชte
var responseAppSheet = UrlFetchApp.fetch(url, {
method: "post",
headers: headers,
payload: JSON.stringify(data)
});
var statusCode = responseAppSheet.getResponseCode();
Logger.log('Statut de la rรฉponse : ' + statusCode);
if (statusCode === 200) {
Logger.log('Rรฉponse AppSheet : ' + responseAppSheet.getContentText());
} else {
Logger.log('Erreur lors de la requรชte. Statut : ' + statusCode);
}
Logger.log('URL de la requรชte : ' + url);
Logger.log('Donnรฉes ร envoyer : ' + JSON.stringify(data));
Logger.log('Rรฉponse AppSheet : ' + responseAppSheet.getContentText());
}
It's working when I set the variable data_to_add like this. Other ways I think I have like 20 set of records coming from the external API.
var data_to_add =
[
{
"id_droit_acces": "xxxxxxxxxxx",
"id_pce": "xxxxx",
"role_tiers": "AUTORISE_CONTRAT_FOURNITURE",
"raison_sociale_du_tiers": "xxxxxxxx",
"nom_titulaire": "xxxxxxxxxx",
"raison_sociale_du_titulaire": null,
"courriel_titulaire": "xxxxxxxxxxxx",
"code_postal": "xxxxx",
"perim_donnees_contractuelles": "",
"perim_donnees_techniques": "Vrai",
"perim_donnees_informatives": "Vrai",
"perim_donnees_publiees": "Vrai",
"date_creation": "2023-12-18 18:02:13",
"etat_droit_acces": "Active",
"date_revocation": null,
"source_revocation": null,
"date_passage_a_obsolete": null,
"source_passage_a_obsolete": null,
"date_passage_a_refuse": null,
"date_debut_droit_acces": "2023-12-18",
"date_fin_droit_acces": "2024-12-18",
"perim_donnees_conso_debut": "2023-04-01",
"perim_donnees_conso_fin": "2025-01-01",
"source_passage_a_refuse": null,
"parcours": "TIERS_DIRECT",
"statut_controle_preuve": null,
"date_limite_transmission_preuve": null,
"numero_telephone_mobile_titulaire": "xxxxxxxxxx"
},
{
"id_droit_acces": "xxxxxxxxxxxx",
"id_pce": "xxxxxxxxxxxxxxx",
"role_tiers": "AUTORISE_CONTRAT_FOURNITURE",
"raison_sociale_du_tiers": "xxxxxxxxxxxxxx",
"nom_titulaire": "xxxxxxxxxxxxxxxx",
"raison_sociale_du_titulaire": null,
"courriel_titulaire": "xxxxxxxxxxxxxxxxxxx",
"code_postal": "xxxxx",
"perim_donnees_contractuelles": "Vrai",
"perim_donnees_techniques": "Vrai",
"perim_donnees_informatives": "Vrai",
"perim_donnees_publiees": "Vrai",
"date_creation": "2023-12-19 12:45:49",
"etat_droit_acces": "Active",
"date_revocation": null,
"source_revocation": null,
"date_passage_a_obsolete": null,
"source_passage_a_obsolete": null,
"date_passage_a_refuse": null,
"date_debut_droit_acces": "2023-12-19",
"date_fin_droit_acces": "2024-12-19",
"perim_donnees_conso_debut": "2022-05-14",
"perim_donnees_conso_fin": "2025-01-01",
"source_passage_a_refuse": null,
"parcours": "TIERS_DIRECT",
"statut_controle_preuve": null,
"date_limite_transmission_preuve": null,
"numero_telephone_mobile_titulaire": "xxxxxxxxxxxxxxxx"
}
]
Solved! Go to Solution.
I thought the API write request is limited to 10MB, but this documentation does not seem to clearly indicate that is the AppSheet API or Big Query.
Thanks for the info.
I've solved my problem. It was a format mistake...
I've add JSON.parse()
to
I thought the API write request is limited to 10MB, but this documentation does not seem to clearly indicate that is the AppSheet API or Big Query.
Thanks for the info.
I've solved my problem. It was a format mistake...
I've add JSON.parse()
to
Good catch. Now that you mention it I recall that I forgot the JSON.parse() multiple times in the past when using the API.
User | Count |
---|---|
43 | |
26 | |
23 | |
14 | |
13 |