Aplicacions amb Flutter, Dart i Flame

Tutorial Flutter Flame Projectes   Recursos CITCEA
Exemples Dart Dades pràctiques     Inici

Preparem l'script

A continuació anirem a la pàgina de Google Drive (se suposa que ja estem identificats) i picarem el botó següent.

Botó nou

Si encara no hem creat cap script, l'opció de crear-ne un no estarà disponible directament. Piquem al botó més i, si tampoc veiem l'opció, anem a Connecta més aplicacions. Podem fer servir el cercador per trobar (posant-hi la paraula app) l'aplicació Google Apps Script.

Google Apps Script

Un cop l'haguem trobat, picarem el botó Connecta. Ara ja podem crear un nou script. Se'ns obrirà una finestra similar a la següent:

Vista del programa

Hem d'esborrar la funció buida myFunction i deixar l'espai en blanc. Ara hem de copiar el nostre script i enganxar-lo a la finestra de l'editor d'scripts. Un cop enganxat, haurem de fer-hi un canvi. Cap a la part superior trobarem la variable idCal amb un nom identificador de calendari inexistent, que caldrà canviar pel que correspongui.

// Funció per interaccionar amb el calendari des del microcontrolador
// Oriol Boix, 2025
// Sota llicència Creative Commons BY-NC-ND
// https://creativecommons.org/licenses/by-nc-nd/3.0/deed.es_ES
//
// Les variables següents ens permeten personalitzar l'script al nostre projecte
// En principi, no hauríem de tocar la resta de l'script 
var idCal = "^^p0fv05mt9ia5lntfpuj32mmc@group.calendar.google.com";
// Script per interactuar amb el calendari
// Funció que s'executa quan hi ha una ordre get
function doGet(e) {
  var salt = "\n";
  var cal = CalendarApp.getCalendarById(idCal);
  if (!cal) {  // Si el calendari no existeix o no tenim permís
    resultat = "Calendari no trobat!";
    return ContentService.createTextOutput(resultat);
  }
  var ara = new Date();  // La data i l'hora del moment d'executar l'script
  var final = new Date();
  final.setHours(23);  // Li canviem l'hora a les 23.59
  final.setMinutes(59);
  // Agafem tots els esdeveniments des d'ara (inclosos els ja iniciats) fins les 23.59 h
  var esdev = cal.getEvents(ara, final);
  var numEsdev = esdev.length;  // Quants n'hi ha?
  var resultat = "";
  for(var i = 0; i < numEsdev; i++){
    if(i > 0){
      resultat = resultat + salt;
    }
    resultat = resultat + dades(esdev[i]);
  }
  return ContentService.createTextOutput(resultat);  // Enviem la resposta
}

function posaHora(dataCas) {  // Afegeix, si cal, un zero
  var resposta = dataCas.getHours() + ".";
  if(dataCas.getMinutes() < 10){
    resposta = resposta + "0";
  }
  resposta = resposta + dataCas.getMinutes();
  return resposta;
}

function dades(esdAct) {  // Organitza les dades d'un esdeveniment
  var descrip = esdAct.getTitle();  // Títol de l'esdeveniment
  var dataIni = esdAct.getStartTime();  // Data i hora d'inici
  var dataFi = esdAct.getEndTime();  // Data i hora d'acabament
  // Ens interessen només les hores d'inici i acabament
  // i les volem en el format habitual en català
  var ini = posaHora(dataIni);
  var fi = posaHora(dataFi);
  var resul = descrip + "," + ini + "," + fi;
  return resul;
}

Aquest programa retorna tots els esdeveniments que estan actius des de la data i l'hora actual fins al final del dia.

Un cop personalitzat el programa l'hem de guardar, picant el botó que es mostra a continuació.

Botó guardar

Picarem el botó Implementar i en el desplegable triarem Nueva implementación i s'obrirà una finestra similar a la següent:

Nueva implementación

El primer cop que ho fem, haurem de picar en el botó que es mostra a continuació.

Tipus

I triar l'opció Aplicación web. La finestra ens preguntarà en nom de qui volem que s'executi l'aplicació (li direm Yo) i qui hi té accés (li direm que qualsevol usuari). Finalment, picarem el botó Implementar.

Nueva implementación

És probable que ens demani que donem permís per a l'accés.

Se'ns mostrarà una pantalla en la que se'ns indicarà l'adreça URL de l'aplicació, que haurem de copiar.

URL script https://script.google.com/macros/s/^^fycbxqrJpVA-KT1sUd8HIta643R3bH4ixpDahttayGSGjkpHUBjPQ/exec

Un cop estiguem, podem picar el botó Hecho.

Atenció: Cada cop que modifiquem el nostre script l'hem de salvar i tornar-lo a publicar. En el desplegable Versió del projecte: cal triar cada vegada l'opció Nou. Si no ho fem així s'executarà la versió anterior del programa, sense tenir en compte les modificacions.

Els scripts es poden provar amb el navegador web. Si tenim un calendari amb les següents activitats

Calendari

i posem l'adreça URL a la barra d'adreces del navegador, aquest script ens tornarà la següent resposta:

Tasca 1,17.15,18.15
Tasca 2,19.0,20.0

Aquesta resposta és molt fàcil d'analitzar. La primera línia correspon al primer esdeveniment i la segona la segon. A cada esdeveniment podem cercar les comes per poder separar el nom de l'esdeveniment, l'hora d'inici i l'hora d'acabament. Si calgués, podem separar les hores i els minuts cercant el punt.

Aquí l'script no era el nostre objectiu sinó només un pas necessari. En cas que volgueu modificar l'script o crear-ne un de nou, en aquest altre espai web pots trobar informació sobre els scripts.

 

 

 

 

 

 

 

 

 

 

Llicència de Creative Commons
Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.