SlideShare ist ein Scribd-Unternehmen logo
1 von 72
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Advanced Software Engineering
Vorlesung 01.04.2016 : Anwendungsentwicklung mit Dr. Andreas Walter
Google Apps Script mail@awalter.info
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Anwendungsentwicklung mit Google Apps Script
Inhaltsverzeichnis
- Einleitung: Generelle Arten der Anwendungsentwicklung
- Einsatzbeispiele für Google Apps Script
- Use-Case: Verwaltung von Buchungen einer Ferienwohnung
- Getting Started: Implementierungsbeispiele mit Google Apps Script
- Aufgaben für Praktikum
Anwendungsentwicklung mit Google Apps Script2 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Einleitung: Generelle Arten der Anwendungsentwicklung
Grad der Verteilung von Diensten nach Intranet und Cloudanwendungen
- Intranet: Ressourcen sind in internem Firmennetz
- Cloud: Ressourcen sind über Internet, zumeist als Clouddienst
verfügbar (Amazon AWS, Microsoft Azure, Google Cloud)
Alles Lokal (Intranet) – höchste Sicherheitsanforderungen, z.b. Banken
- Datenbank, Dienste lokal
- Lokale Entwicklungsumgebung und Ausführung
Hybrid (Intranet & Cloud) – hohe Sicherheitsanforderungen, z.B.
Krankenhäuser (Patientendaten lokal, Statistiken zentral)
- Einige Dienste in Cloud (z.B. Abrechnungsdaten)
- Datenbank im Intranet
- Lokale Entwicklungsumgebung und Ausführung
Anwendungsentwicklung mit Google Apps Script3 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Generelle Arten der Anwendungsentwicklung (2)
Hybrid mit lokaler Ausführung (Cloud) – webbasierte Spiele
- z.b. Dienste in Cloud, Datenbank in Cloud
- Lokale Ausführung, z.b. Spiel mit hohen Anforderungen an Grafikkarte
Cloud Only – Webanwendungen (public, einfache Skalierbarkeit)
- Browser zur Ausführung der Anwendung
- Browser zum Zugriff auf Entwicklungsumgebung
- Dienste und Datenhaltung in der Cloud
Google Apps Script: nutzt Cloud-Umgebung von Google
 wenig Installationsaufwand, komfortable Entwicklung webbasierter
Anwendungen, Leistungsfähige Cloudumgebung zur Ausführung der
Anwendungen.
Anwendungsentwicklung mit Google Apps Script4 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Google Apps Script: Übersicht
Anwendungsentwicklung mit Google Apps Script5 01.04.2016
- Erlaubt die Erstellung von
(Web)Anwendungen unter Verwendung
von JavaScript.
- Erweiterung von Google Anwendungen
und eigene Menüs in Google
Anwendungen
- Automatisierung zwischen Google
Diensten und zu externen Diensten
- Einbindung in Google Sites
(Komponenten einer Webseite)
- Speichern von Daten / Dateien in
Google Drive
- Code wird mit Hilfe einer
browserbasierten
Entwicklungsumgebung erstellt,
getestet und publiziert
https://www.google.com/script/start/
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
EINSATZBEISPIELE FÜR
GOOGLE APPS SCRIPT
Google Apps Script
Anwendungsentwicklung mit Google Apps Script6 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Add-Ons für Google Anwendungen
Add-Ons erweitern den Funktionsumfang bestehender Anwendungen.
Vergleichbar mit Macros in Microsoft Office
Beispiel: ein ausgewählter Text soll automatisch von Google Translate
übersetzt werden
- Google Translate: Textübersetzung von ausgewählter Sprache in
Zielsprache
- Technik: webbasierte Formulare (HTML, POST Requests)
Anwendungsentwicklung mit Google Apps Script7 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Eigene Menüs in Google Anwendungen
Eigene Menüs erlauben zusätzliche Methoden, z.B. Berechnungen
Beispiel: Eigenes Menü zur Berechnung anderer Maßeinheiten
- Zusätzliches Menü in Google Sheets, erlaubt Umrechnung von Meter –
Meilen, schreibt Ergebnis in neue Zelle
- Technik: Auslesen von Tabellenzellen und Schreiben neuer Werte
Anwendungsentwicklung mit Google Apps Script8 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Auswertungen von Formularen
Anwendungsentwicklung mit Google Apps Script9 01.04.2016
Formulare erlauben das strukturierte Sammeln von Daten zur späteren
Auswertung
Beispiel: Sammeln von Vortragsthemen für eine Konferenz
Technik:
- Google Forms zur Abfrage von Daten wie Vortragstitel, Startzeit
- Google Apps Script zur Auswertung
- API zu Google Calendar zum Erstellen von Termineinträgen
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Automatisierung in Google Anwendungen
Regelmäßig ausgeführte Tasks erlauben die Automatisierung von
umfangreichen Abläufen.
Beispiel: Erstellung von Statistiken
zu empfangenen Emails
Technik
- Geplante Tasks starten die Ausführung der Anwendung, hier am
Monatsanfang
- Auslesen von Emails in Gmail
- Schreiben von Statistikdaten Sheets
- Erstellung von Charts auf Basis der Tabellendaten
Anwendungsentwicklung mit Google Apps Script10 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Automatisierung zwischen Google Anwendungen
Anwendungen, welche mehrere Google Dienste verwenden, z.B. Gmail
zum Emailversand, Google Sheets zur Speicherung von Daten
http://googleappsdeveloper.blogspot.de/2012/04/approval-workflow-using-apps-script.html
Beispiel
Zustimmung zu bestimmten Vorgängen
durch Vorgesetze und Kommissionen
Technik
- Automatisches lesen und versenden
von Emails
- Anzeigen von Formularen
- Automatisches Speichern von
Formulareingaben in Google Sheets
Anwendungsentwicklung mit Google Apps Script11 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Automatisierung zu Externen Diensten
Daten werden in Google Anwendungen gesammelt, z.B. Formularen.
Nach Eingabe werden diese zu externen Anwendungen übertragen.
Beispiel: senden von Formulareingaben zu Salesforce
Technik
- Events: Ereignisse können zeitgesteuert oder nach einem Ereignis wie
eingehenden Formularen ausgelöst werden
- Übertragen von Formulardaten zu externer REST Schnittstelle
http://googleappsdeveloper.blogspot.de/2012/03/integrating-google-docs-with.html
Anwendungsentwicklung mit Google Apps Script12 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Speicherung von Daten / Dateien
Google Apps Script verwendet zur Datenhaltung den Dienst Google Drive
(Cloudbasierter Datenspeicher). Daten können einfach geschrieben und
gelesen werden
Anwendungsentwicklung mit Google Apps Script13 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
USE-CASE: VERWALTUNG
VON BUCHUNGEN EINER
FERIENWOHNUNG
Google Apps Script
Anwendungsentwicklung mit Google Apps Script14 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Use Case Beschreibung Buchungen
Eine Ferienwohnung publiziert ihr Angebot zu verfügbaren
Buchungskapazitäten bei Buchungsportalen wie booking.com,
airbnb.com, traum-ferienwohnungen.de etc.
- Eingehende Buchungen von den Portalen werden per Email gemeldet.
- Buchungen sollen automatisch ausgelesen werden und strukturiert
gespeichert werden.
- Dem Gast soll eine Buchungsbestätigung geschickt werden. Dem
Betreiber eine Email mit einer Zusammenfassung zur Buchung.
- 14 Tage vor Anreise sollen dem Gast Informationen rund um die
Anreise und den Attraktionen rund um die Ferienwohnung geschickt
werden.
- Ein Tag vor Anreise soll dem Betreiber automatisch eine Email mit
Rechnung, Quittung und Anreiseinformationen für den Gast gesandt
werden.
.
Anwendungsentwicklung mit Google Apps Script15 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
1) Automatisches Auslesen von Buchungen aus Portalen
Portal hier: booking.com. Kunde bucht bei Booking.com, Booking.com
schickt Email an Betreiber.
Anwendungsentwicklung mit Google Apps Script16 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
2) Automatisches Auslesen der Buchungsdetails
Pro Buchung stellt booking.com die Buchungsdetails bereit
Anwendungsentwicklung mit Google Apps Script17 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Ausführung durch Apps Script
1) Task liest regelmäßig Gmail Emails (alle 10 Minuten)
2) Sobald eine Email mit Betreff „Booking.com - Eine neue Buchung!“
des Absenders noreply@booking.com vorliegt, wird diese gelesen
3) Ein HTML Parser ( Teil von Apps Script ) liest den in Email
enthaltenen Link. Über reguläre Ausdrücke findet der Parser wichtige
Informationen in der Seite (Name des Buchers, Anreise, Abreise…)
4) Die Buchungsinformationen werden in Google Sheets geschrieben
(getrennt nach Buchungsdaten und Kundendaten)
5) Eine Email wird an den Buchenden geschickt, um die Buchung zu
bestätigen und weitere Informationen zur Bezahlung zu senden
6) Dem Betreiber wird eine Email zugestellt, um die Buchung direkt
anzuzeigen (ohne sich erst auf Booking.com einloggen zu müssen)
7) 14 Tage vor Anreise (per Tasks) wird dem Buchenden eine Email mit
Informationen zur Buchung geschickt
8) Ein Tag vor Anreise wird Rechnung an Betreiber per PDF geschickt
Anwendungsentwicklung mit Google Apps Script18 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
3) Schreiben von Buchungsdaten in Google Sheets
Anwendungsentwicklung mit Google Apps Script19 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
4) Automatisches Erstellen von Rechnungen
- Ein täglich gestarteter Task prüft, ob am nächsten Tag eine Anreise ist
- Falls ja, werden die Buchungsdaten aus den entsprechenden Sheets
gelesen.
- Eine Vorlage in Google Docs wird geladen und die entsprechenden
Buchungsdaten eingefügt.
- Aus dem Dokument wird automatisch ein PDF generiert und an
Betreiber geschickt
- Über ein externes SMS
Gateway bekommt
Kunde eine SMS geschickt,
um nach der geplanten
Anreisezeit zu fragen.
Anwendungsentwicklung mit Google Apps Script20 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Use Case Beschreibung Buchungskalender
Der Buchungskalender soll die vorhandenen Buchungen in übersichtlicher
Form darstellen.
- Zu jedem Kalendertag soll die Verfügbarkeit angezeigt werden
- Für verfügbare Tage sollen die Raten angezeigt werden. Es muss
möglich sein, für bestimmte Tage Saisonraten zu hinterlegen mit
höheren Preisen
- Für Tage mit Buchungen muss durch einfachen Klick auf den Tag
angezeigt werden, welcher Gast gebucht hat
Anwendungsentwicklung mit Google Apps Script21 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Buchungskalender
Ein stündlich gestarteter Task liest alle Buchungen aus Buchungstabelle.
Ein weiteres Sheet „Kalender“ wird aktualisiert mit den Informationen zur
Verfügbarkeit.
Anwendungsentwicklung mit Google Apps Script22 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Buchungsdetails
Jede Buchung ist verlinkt zu einer Buchungsdetailseite.
Technik: Buchungsdetailseite ist eine Webanwendung. Als HTTP GET
Parameter nimmt sie BuchungsId entgegen. Intern wird die Buchung
geladen und als Webseite angezeigt. Anzeige über Google Web Toolkit
Funktionalitäten
Anwendungsentwicklung mit Google Apps Script23 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Use Case Beschreibung: Webseite zur Ferienwohnung
Die Ferienwohnung soll durch eine Webseite im Internet gezeigt werden.
- Die Webseite soll die Verfügbarkeiten des aktuellen und des nächsten
Tages auf der Webseite anzeigen
- Ein Buchungsformular soll es ermöglichen, Verfügbarkeiten
anzuzeigen
- Die aktuellen Preise sollen auf der Webseite angezeigt werden
- Zusätzlich weitere statische Seiten wie Bilder, Informationen, etc.
Anwendungsentwicklung mit Google Apps Script24 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Webseite: Anzeige Verfügbarkeiten heute / morgen
Webseite: www.apartment-baden.com
Anwendungsentwicklung mit Google Apps Script25 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Webseite: Anzeige Verfügbarkeiten / Buchung
Anwendungsentwicklung mit Google Apps Script26 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Webseite - Technik
- Webseite läuft auf eigenem Webserver
- Servlet-Container mit REST Service – wird über einen Task stündlich
von Apps Script aufgerufen – die aktuellsten Verfügbarkeiten und
Preise werden übertragen.
Servlet generiert aus neuesten Daten statische HTML Seiten der
Homepage.
- REST Service in Apps Script – erlaubt Eingabeparameter wie Anreise /
Abreisedatum und Anzahl Personen. Service prüft Verfügbarkeit und
gibt entsprechend Preise zurück.
- Webseite: JQUERY zur Anfrage des REST Services per AJAX
Request nach Preisen, automatische Aktualisierung der Webseite
- CSS / JQUERY zur korrekten Skalierung der Webseite je nach Gerät
(Responsive Web Design)
Anwendungsentwicklung mit Google Apps Script27 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Use Case Beschreibung: Portal für Betreiber
Dem Betreiber soll eine webbasierte Portalseite zur Verfügung gestellt
werden.
- Der Betreiber soll Zugriff auf den Buchungskalender haben
- Ein Buchungsformular soll den Eintrag neuer Buchungen erlauben
- Statistiken sollen zeigen, wie sich Buchungen nach Monaten verteilen
- Das Portal soll zeigen, wie häufig die Webseite besucht wird
- Falls AdWords auf Suchmaschine gebucht werden, soll gezeigt
werden, wie häufig diese geschalten wurde und mit welchen
Suchbegriffen
- Ein Dashboard soll einen schnellen Überblich zum erzielten Umsatz
und den nächsten Buchungen geben.
Anwendungsentwicklung mit Google Apps Script28 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Google Sites: Portalbasierte Webseiten erstellen
https://www.google.com/sites/overview.html
Google Sites erlaubt die Erstellung von Webseiten.
Ein Content Management System erlaubt die Pflege einzelner Seiten
Jede Seite kann wahlweise mit statischen Inhalt, aber auch mit
dynamischem Inhalt gefüllt werden.
Dynamische Inhalte können publizierte Sheets sein, aber auch mit Apps
Script erstellte Webseiten
Anwendungsentwicklung mit Google Apps Script29 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Dashboard
Dashboard enthält Komponenten, die aus Sheets publiziert wurden.
Jedes Sheet kann als Webkomponente publiziert werden.
Es aktualisiert seinen Inhalt dann automatisch nach Änderungen
Anwendungsentwicklung mit Google Apps Script30 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Publiziertes Sheet Buchungskalender
Komplettes Sheet Buchungskalender als Webkomponente publiziert
Anwendungsentwicklung mit Google Apps Script31 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Publizierte Web App: Buchungsformular
Buchungsformular wurde implementiert unter Verwendung von Google
Web Toolkit (GWT) Komponenten. Diese sind in Apps Script integriert.
Anwendungsentwicklung mit Google Apps Script32 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Auswertung über mehrere Dienste
Hier: Auswertung von Buchungen, AdWords und Google Analytics
Gegenüberstellung von Anzahl Buchungen, Besuchern und AdWords
Nutzung in einer Komponente.
Abfrage von Google Analytics und Google AdWords API, schreiben der
Daten in Excel Sheet.
Anwendungsentwicklung mit Google Apps Script33 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Daten aus externen Diensten: hier AdWords
Abfrage der AdWords Daten. AdWords API wird regelmäßig abgefragt,
Ergebnisse in Sheets geschrieben
Authentifizierung
Apps Script erlaubt drei Arten von Authentifizierung
- Single-Sign-On: gilt für alle direkten Google Dienste, z.b. GMail.
Benutzer muss einmalig Apps Script Authentifizieren für Zugriff
- Apps Permissions: gilt für weitere Google Dienste wie AdWords.
Entwickler muss Zugriff einmalig Authentifizieren über Developer
Console
- OAuth: hauptsächlich externe Dienste (siehe Folie Twitterintegration)
https://developers.google.com/apps-script/guides/services/authorization
Anwendungsentwicklung mit Google Apps Script34 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
AdWords: Auslesen häufiger Suchwörter
Hier: häufigste Suchwörter der letzten Woche
Anwendungsentwicklung mit Google Apps Script35 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Zusammenfassung Use Case
Wie gezeigt erlaubt Google Apps Script die umfangreiche Automatisierung
von Abläufen innerhalb von Google Anwendungen, aber auch aus
externen Diensten beziehungsweise zu externen Diensten.
- Datenhaltung: per Google Sheets (Google Drive), auch zu weiteren
Diensten BigData oder dokumentbasiert
- Tasks / Events: per Tasks / Events kann direkt auf ein Ereignis reagiert
werden, z.b. eingehende Email
- Webanwendungen: erlauben die strukturierte Eingabe von Daten und
Weiterverarbeitung (siehe Buchungsformular)
- Reports / Statistiken: Generierung umfangreicher Reports und
Statistiken auf Basis von gesammelten Daten
- Google Sites: Erstellung von skalierbaren Webseiten auf Basis der
Google Cloud Infrastruktur.
Anwendungsentwicklung mit Google Apps Script36 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
GETTING STARTED:
IMPLEMENTIERUNGSBEISPIELE
MIT GOOGLE APPS SCRIPT
Google Apps Script
Anwendungsentwicklung mit Google Apps Script37 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Generelle Schritte
1) Google Apps Script erfordert einen Google Account. Falls nicht
vorhanden, kann dieser kostenlos erstellt werden
2) Genereller Einstieg zu Anwendungen mit Google
Apps Script ist über Google Drive.
Öffne drive.google.com
3) Einfachster Einstieg ist über Google Sheet.
Klicke Button „New“ -> „Google Sheets“
4) Gebe dem Sheet einen Namen, z.b.
„Apps Script Tutorial“
5) Um den browserbasierten
Apps Editor
zu öffnen, klicke auf
„Tools“ -> „Skripteditor“
Anwendungsentwicklung mit Google Apps Script38 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Der Apps Script Editor: Hauptansicht
Der Editor erlaubt
im mittleren Bereich
das Erstellen von
Funktionen.
Das Pulldown darüber
erlaubt das Auswählen
einer Methode.
Über den Play
Button wird diese
ausgeführt. Debug geht
mit dem Käfer Symbol
daneben.
Die Konsoleausgabe ist
verfügbar über
View -> Logs oder Ctrl-Enter.
Anwendungsentwicklung mit Google Apps Script39 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Implementierungssprache: JavaScript 1.6
Google Apps Script wird mittels der Programmiersprache JavaScript 1.6
implementiert.
Einige Beispiele, Details siehe z.B.
http://www.html-seminar.de/javascript-datentypen.htm
// variablenzuweisung, untypisiert
var responseText=„Hallo“ // String
var maxCount = 1 // int
// for Schleifen
for (var i = 0; i < result.length; i++) { // process object result[i] }
// Webseite laden -> gibt HTML / XML / JSON zurück
var response = UrlFetchApp.fetch(url, options);
Anwendungsentwicklung mit Google Apps Script40 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Neue Dateien erstellen und Versionierung
Über das Menü
File -> New -> Script File
können weitere Skriptdateien
dem Projekt hinzugefügt werden.
Dies erlaubt das Aufteilen von
Programmteilen nach ihrer
Funktion (vgl. Bibliotheken), z.b.
eine Datei für Speichermethoden
Über das Menü
File -> Manage Versions
kann das Projekt versioniert werden.
Dies ermöglicht das Publizieren einer
bestimmten Version z.b. als
Webanwendung
Anwendungsentwicklung mit Google Apps Script41 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Einbinden von eigenen und 3rd Party Bibliotheken
Einzelne Projekte können als Bibliothek in anderen Projekten
wiederverwendet werden (Ressources -> Libraries …. Ebenso können
Bibliotheken von Drittanbietern beziehungsweise von Google
eingebunden werden. (Ressources -> Advanced Google Services…)
Einbindung von Gmail Api
Aktivierung:
Folge Link zu
Google Developers Console.
Suche API, hier Gmail.
Klicke auf „Aktivieren“ Benutzung: Gmail.<function>, z.b.
Gmail.newLabel()
Anwendungsentwicklung mit Google Apps Script42 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
6 Einfache Schritte zur Webanwendung
1) Erstelle eine Skript Datei „examplewebapp.gs“
2) Erstelle eine Methode doGet(e) (HTTP GET).
3) Füge folgenden Text ein
function doGet() {
return ContentService.createTextOutput("simple web app output");
}
4) Klicke „File“ -> „Manage Versions“, erstelle
neue Version z.b. „FirstWeb“
5) Klicke „Deploy“ -> „Publish as WebApp“
6) Teste Anwendung, klicke auf „Test Web
App for your latest code“
Anwendungsentwicklung mit Google Apps Script43 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Auslesen von Request Parametern aus URL
In einer Webanwendung, können bei GET und POST Anfragen die
Parameter einfach ausgelesen werden
Beispiel: site?action=list&maxValues=5
function doGet(e) <- entry point GET Request, e enthält Parameter
{
var action=e.parameter.action;
// action = list
var maxValues=e.parameter.maxValues
// maxValues=5
}
Anwendungsentwicklung mit Google Apps Script44 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Emails schreiben und lesen
Email Funktion über Google Mail kann direkt über Script aufgerufen
werden
Email schreiben
MailApp.sendEmail(<receiver>, <subject>, <mailtext>);
Emails lesen: Library GmailApp.
Beispiel hier: Suche Mails eines Absenders
var threads = GmailApp.search('noreply@booking.com');
var messagesFound=threads.length;
Logger.log("messages found :" +messagesFound);
for (var i = 0; i < threads.length; i++) {
// read email , z.B var subject=threads[i].getFirstMessageSubject();
}
Anwendungsentwicklung mit Google Apps Script45 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Daten in Sheets schreiben (1)
Per Google Sheets kann in Sheets geschrieben werden
Vorraussetzungen
- Id des Google Sheets. Lese aus URL Teil <id>
https://docs.google.com/spreadsheets/d/<id>/edit
Falls https://docs.google.com/spreadsheets/d/1234/edit => id = 1234
- Name des Sheets in das geschrieben werden soll, z.b. Sheet1
Auf ein Sheet zugreifen
var sheet = SpreadsheetApp.openById(„<id>").getSheetByName(„<sheet-
name");
Anwendungsentwicklung mit Google Apps Script46 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Daten in Sheets schreiben (2)
Anzahl vorhandener Zeilen ermitteln. Erste Zell hat Koordinaten (1,1)
// anzahl Zeilen bereits vorhanden
var numRows = rows.getNumRows();
// Zeile, in die nächster Eintrag zu schreiben ist
var rowNr=numRows+1;
var cellNr=1;
Zeilenwerte schreiben
// write in cell 1
sheet.getRange(rowNr, cellNr).setValue(“Zelle 1”);
// write in cell 2
cellNr++;
sheet.getRange(rowNr, cellNr).setValue(“Zelle 2”);
Anwendungsentwicklung mit Google Apps Script47 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Daten aus Sheets lesen
Voraussetzungen wie bei Schreiben : id, Name Tabellenblatt
// Referenz auf Sheet
var sheet = SpreadsheetApp.openById(„<id>").getSheetByName(„<sheet-name");
// rows : enthält Referenz auf die Daten, values = die Werte
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
for (var x=1;x<numRows;x++)
{
var row = values[x];
resultentry.value1 = row[0];
resultentry.value2 = row[1];
Anwendungsentwicklung mit Google Apps Script48 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Sheets publizieren
Sheets können publiziert werden, um seinen Inhalt per Browser aufrufen
oder in Google Sites integrieren zu können.
File -> Publish to the web
Anwendungsentwicklung mit Google Apps Script49 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Daten von externen Diensten lesen (1)
Google Apps Script ermöglicht das Auslesen von Diensten. Hierzu wird
Authentification (OAuth) unterstützt, ebenso das Lesen struktierierter
Daten wie z.B. JSON Serialisierung.
Beispiel: Lesen der neuesten Tweets von Twitter
OAuth 1 / 2
Serviceschnittstelle erfordert Authentifizierung mittels Tokens.
Nach einer Registrierung beim Service erhält man
Consumer Key und Consumer Key Secret
Beispiel: Twitter , https://apps.twitter.com/app/
- Erstelle eine neue App, danach werden die Tokens angezeigt
Anwendungsentwicklung mit Google Apps Script50 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Daten von externen Diensten lesen (2) – OAuth Token
Ziel von OAuth Anfragen sind der Erhalt eines gültigen Tokens
// Encode consumer key and secret
var tokenUrl = "https://api.twitter.com/oauth2/token";
var tokenCredential = Utilities.base64EncodeWebSafe(
TWITTER_CONSUMER_KEY + ":" + TWITTER_CONSUMER_SECRET);
// Obtain a bearer token with HTTP POST request
var tokenOptions = {
headers : {
Authorization: "Basic " + tokenCredential,
"Content-Type": "application/x-www-form-urlencoded;charset=UTF-8"
},
method: "post",
payload: "grant_type=client_credentials"
};
var responseToken = UrlFetchApp.fetch(tokenUrl, tokenOptions);
var parsedToken = JSON.parse(responseToken);
var token = parsedToken.access_token;
Logger.log("token : " +token);
Anwendungsentwicklung mit Google Apps Script51 01.04.2016
URL des Services
Token Werte Setzen
URLFetchApp
lädt http ressourcen
JSON Parsen
Json.parse
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Daten von externen Diensten lesen (3) – Api Nutzen
Im Beispiel werden die letzten Tweets eines Accounts geladen
// Read twitter TimeLine of User ApartmentBaden
var apiUrl = "https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=ApartmentBaden";
var apiOptions = { headers : { Authorization: 'Bearer ' + token }, "method" : "get„ };
var responseApi = UrlFetchApp.fetch(apiUrl, apiOptions);
var result = "";
if (responseApi.getResponseCode() == 200) {
// Parse the JSON encoded Twitter API response
var tweets = JSON.parse(responseApi.getContentText());
if (tweets) {
for (var i = 0; i < tweets.length; i++) {
var tweet = tweets[i].text;
var date = new Date(tweets[i].created_at);
result += "[" + date.toUTCString() + "]" + tweet + " nn ";
}
}
}
Logger.log(result); <- zeigt jeweils pro Tweet das Datum und den Tweet-Text im LogOutput an
Anwendungsentwicklung mit Google App Scripts52 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Regelmäßige Tasks registrieren
Eine Methode, die regelmässig ausgeführt werden kann, wird über den
Taskmanager registriert.
Ressources -> Current Project‘s Triggers
Im folgenden wird die Methode „readTweets()“ zur stündlichen Ausführung
registriert.
Anwendungsentwicklung mit Google Apps Script53 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Google Sites : Komponenten einfügen
Freigegeben Komponenten und Web Apps können in Google Sites
eingebunden werden.
Erstelle eine neue Seite in Google Sites
https://www.google.com/sites/overview.html
Einbinden von Sheets
Einfügen -> Drive -> Tabelle
Wähle das zuvor publizierte
Sheet aus
Anwendungsentwicklung mit Google Apps Script54 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Google Sites : Komponenten einfügen (2)
Einbinden von Webapps
Einfügen -> Apps Script
Web App muss zuvor publiziert worden sein
Entsprechende Art der eingebundene Komponente wird von Google Sites
angezeigt, Größe kann angepasst werden
Anwendungsentwicklung mit Google Apps Script55 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Zusammenfassung
Google Apps Script erlaubt die umfangreiche Automatisierung zwischen
bestehenden Cloudanwendungen von Google wie Mail, Sheets und Drive.
Zur Erstellung der Anwendungen müssen keine weiteren Dienste,
Entwicklungsumgebungen oder Systeme erstellt werden. Die vollständige
Entwicklung ist web / cloudbasiert. Die gesamte Implementierung
geschieht mittels JAVAScript.
Weiterhin ist es möglich, umfangreiche Webanwendungen zu erstellen,
welche auf der leistungsfähigen Serverumgebung von Google laufen.
Auch hierzu müssen keine weiteren Komponenten wie Webserver,
Datenbanken oder Applikationserver installiert werden.
Da man auf externe Dienste zugreifen kann, hat man weitreichende
Erweiterungsmöglichkeiten, die über das Leistungsangebot von Google
hinausgehen.
Anwendungsentwicklung mit Google Apps Script56 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
AUFGABEN FÜR PRAKTIKUM
Google Apps Script
Anwendungsentwicklung mit Google Apps Script57 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Praktikum: Anwendung von Google Apps Script
Ziel des Praktikums ist es, die grundlegenden Möglichkeiten von Google
Apps Script zu lernen und zu beherrschen.
Exemplarisch soll daher eine Google Site erstellt werden, welche ein Set
von zu erstellenden Komponenten anzeigt und dabei auf Google Dienste
wie auch externe Dienste zurückgreift.
Die entsprechenden Komponenten sind zu implementieren innerhalb
eines eigenen Google Accounts. Ergebnis der Praktikumsarbeit soll die
URL der Google Site sein, welche alle Komponenten integriert. Diese ist
an Dozent nach Fertigstellung zu übermitteln.
Anwendungsentwicklung mit Google Apps Script58 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Aufgabe 1: Accounts erstellen
Falls noch nicht vorhanden, erstellen Sie bitte einen Google Account.
https://myaccount.google.com/
Im Email Eingang sollten mindestens 10 Emails in der Inbox sein.
https://mail.google.com
Unter YouTube sollten mindestens 10 Filme gestartet worden sein
https://www.youtube.com/feed/history
Erstellen Sie bitte einen kostenlosen Account bei
http://openweathermap.org/api . Notieren Sie bitte den Api Key
Erstellen Sie eine Seite unter Google Sites. Merken Sie sich bitte die URL
http://sites.google.com/
Anwendungsentwicklung mit Google Apps Script59 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Aufgabe 2: Datenhaltung einrichten
Datenhaltung
Erstellen Sie bitte in Google Drive einen neuen Ordner „Praktikum“.
Erstellen Sie ein neues Sheet „PraktikumSheet“.
Notieren Sie sich die ID des Sheets
Erstellen Sie bitte weitere Sheets mit jeweils einer Tabellen gleichen
Namens
- Sheet Emails: Spalten SenderEmail, Subject, Datum
- Sheet EmailStatistik: Zellen EmailsTotal, EmailsGestern,
VerschiedeneAbsender
- Sheet YouTube: Spalten FilmTitel, Datum
- Sheet Wetterdaten: Zellen Temperatur, Sonnenaufgang,
Sonnenuntergang, Datum, Windstärke, Windrichtung
Anwendungsentwicklung mit Google Apps Script60 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Aufgabe 2: Abbildung der Tabellen
Anwendungsentwicklung mit Google Apps Script61 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Aufgabe 3: Komponenten in Google Sites einbinden
Publizieren Sie die vier
Blätter der Sheets.
Binden Sie diese in
Google Sites ein
Anwendungsentwicklung mit Google Apps Script62 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Aufgabe 4: Entwicklungsumgebung einrichten
Erstellen Sie im Sheet Praktikum ein neues Google Apps Projekt. Das
Projekt soll den Namen „Dashboard“ bekommen.
Erstellen Sie im Projekt „Dashboard“ die folgenden Skriptdateien
- emails.gs
- emailsStatistik.gs
- youtube.gs
- wetterdaten.gs
- jsonweb.gs
Anwendungsentwicklung mit Google Apps Script63 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Aufgabe 5: Auslesen von Emails
Innerhalb dieser Aufgabe wird die Bibliothek GmailApp verwendet.
Verwenden Sie das Sheet emails.gs. Erstellen Sie eine Funktion
readEmails, welche die Emails der Gmail Inbox lesen kann. Es sollen
jeweils die maximal 30 neuesten Emails geladen werden.
Für jede Email soll geprüft werden, ob diese bereits in der Tabelle
„Emails“ als Eintrag gespeichert ist. Key dabei ist Absender|Betreff.
Falls Eintrag noch nicht vorhanden ist, soll eine neue Zeile in Tabelle
„Emails“ eingetragen werden, welche als Spalten die AbsenderEmail,
Betreff und das Eingangsdatum erhalten.
Die Funktion readEmails soll alle 60 Minuten automatisch über den
Taskmanager ausgeführt werden.
Anwendungsentwicklung mit Google Apps Script64 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Aufgabe 6: Erstellen von Email Statistiken
Innerhalb dieser Aufgabe werden Statistiken zu den erhaltenen Emails
erstellt.
Verwenden Sie das File emailStatistics.gs. Erstellen Sie eine Funktion
createEmaiStatistics(), welche aus der Tabelle Emails die erhaltenen
Emails liest. Folgende Statistikwerte sollen ermittelt werden
- Emails Total: die Anzahl der insgesamt erhaltenen Emails
- Emails Gestern: die Anzahl der Emails, die am gestrigen Tag erhalten
wurden
- Verschiedene Absender: die Anzahl der bezüglich Ihrer Absenderemail
verschiedenen Sender
Die erhaltenen Werte sind in die entsprechenden Felder der Tabelle
EmailStatistics zu schreiben
Registrieren Sie die Funktion createEmailStatistics() als Task, der Nachts
zwischen 0 und 1 Uhr läuft
Anwendungsentwicklung mit Google Apps Script65 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Aufgabe 7: Reagieren auf Events
Innerhalb dieser Aufgabe wird auf ein Event reagiert. Der Event ist eine
eingegehende Email mit dem Betreff „EmailStatistic“.
Erstellen Sie eine Funktion readStatisticMailRequest() im File emailStatistics.gs,
welche nach Emails im Posteingang sucht, die den Betreff „EmailStatistic“ haben.
Wird eine solche Mail gefunden, soll die Funktion wie folgt handeln:
- Lese die Werte EmailsTotal, EmailsGestern und VerschiedeneAbsender aus
dem Sheet EmailStatistics
- Sende dem Sender der Email eine Antwort-Email mit dem Inhalt
„EmailsTotal: <EmailsTotal>, Emails Gestern: <EmailsGestern>, Verschiedene
Absender: <VerschiedeneAbsender>.
- Lösche die empfange Email aus der InBox (da sonst der Dienst immer aktiviert
wird!).
- Die Funktion readStatisticMailRequest() soll alle 10 Minuten vom Taskmanager
gestartet werden.
Anwendungsentwicklung mit Google Apps Script66 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Aufgabe 8: Verbindung zu Google Services
Ziel dieser Aufgabe ist das Abfragen von Daten aus Google Diensten.
Ermitteln Sie die Bibliothek, die zur Abfrage von Daten aus YouTube
geeignet ist und binden diese ein.
Erstellen Sie eine Funktion readLatestMovies(), welche die in YouTube
zuletzt gesehenen Videos abruft. Jedes Video, welches noch nicht im
Sheet YouTube gespeichert ist, soll eingetragen werden als „Filmtitel“ und
„Datum gesehen“.
Die Funktion readLatestMovies() soll stündlich vom Taskmanager
gestartet werden.
Anwendungsentwicklung mit Google Apps Script67 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Aufgabe 9: Verbindung zu externen Diensten
Ziel dieser Aufgabe ist das Abfragen von Daten aus externen Diensten.
Hierbei werden OAuth Methoden verwendet.
Lesen Sie die API von http://openweathermap.org/api. Ermitteln Sie, wie
ein JSON Request generiert wird, um das Wetter für Pforzheim
anzuzeigen.
Aus der API sind die Werte Temperatur, Sonnenaufgang,
Sonnenuntergang, Datum (aktueller Tag), Windstärke, Windrichtung
auszulesen. Die erhaltenen Werte sollen im Sheet Wetterdaten ersetzen.
Erstellen sie im File wetterdaten.gs eine entsprechende Funktion
readWeather(). Diese Methode soll einmal täglich zwischen 8 und 9 Uhr
ausgeführt werden.
Anwendungsentwicklung mit Google Apps Script68 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Aufgabe 10: JSON basierte Webanwendung
Ziel dieser Aufgabe ist die Erstellung einer JSON basierten
Webanwendung. Sie soll auf Anfrage Daten mit JSON serialisiert an den
Client zurück geben. Somit können externe Anwendungen von den Daten
in der Anwendung profitieren.
Erstellen Sie eine Webanwendung mit GET Request Unterstützung in der
Datei jsonweb.gs.
Auf einen GET Request soll der Client als JSON Request folgendes
Objekt erhalten
Wetterdaten
city: Pforzheim
temperatur: <temperatur> .
Der Wert für Temperatur ist aus Sheet Wetterdaten auszulesen.
Binden Sie diese Webanwendung in die Google Sites Anwendung ein.
Anwendungsentwicklung mit Google Apps Script69 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Aufgabe 11: Apache Wicket Tutorial
Mit Google Apps Script wurde der komplett cloudbasierte Weg gezeigt,
um Anwendungen innerhalb einer Cloudinfrastruktur zu installieren.
Den „traditionellen“ Weg zeigt die Vorlesung nächste Woche „Wicket
Tutorial“. Hierbei wird eine Bildsuchmaschine mit Hilfe des
Webframeworks Apache Wicket erstellt. Als Datenhaltung wird mittels
MySQL eine SQL basierte Datenbank verwendet.
Innerhalb dieser Aufgabe sollen Sie die im Tutorial gezeigte, komplett
lauffähige Anwendung auf Ihrem Rechner (oder auf von Uni gestellter
Ressource) installieren und ausführen.
Anwendungsentwicklung mit Google Apps Script70 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Punkteverteilung
Aufgabe Punkte
01. Accounts erstellen 1
02. Datenhaltung einrichten 2
03. Komponenten in Google Sites einbinden 3
04. Entwicklungsumgebung einrichten 2
05. Auslesen von Emails 3
06. Erstellen von Email Statistiken 4
07. Reagieren auf Events 3
08. Verbindung zu Google Services 6
09. Verbindung zu externen Diensten 5
10. JSON basierte Webanwendung 6
11. Apache Wicket Tutorial 5
Total maximal 40
Anwendungsentwicklung mit Google Apps Script71 01.04.2016
Advanced Software Engineering
Hochschule Pforzheim - Sommersemester 2016
Kontakt
Ich stehe Ihnen gerne bei Fragen zu den einzelnen Aufgaben zur
Verfügung.
Andreas Walter
Email: mail@awalter.info
Anwendungsentwicklung mit Google Apps Script72 01.04.2016

Weitere ähnliche Inhalte

Andere mochten auch

Cómo gustarle a Google
Cómo gustarle a GoogleCómo gustarle a Google
Cómo gustarle a Googlejosemanuelarce
 
Llp ivt 2010-ro_064_ac traductores
Llp ivt 2010-ro_064_ac traductoresLlp ivt 2010-ro_064_ac traductores
Llp ivt 2010-ro_064_ac traductoresAlvaro ACtraductores
 
A Taste of Tech Tools: VoiceThread, Video Production, and Socrative
A Taste of Tech Tools: VoiceThread, Video Production, and SocrativeA Taste of Tech Tools: VoiceThread, Video Production, and Socrative
A Taste of Tech Tools: VoiceThread, Video Production, and Socrativemaritezita
 
Costa rica-entre-1873-y-1874
Costa rica-entre-1873-y-1874Costa rica-entre-1873-y-1874
Costa rica-entre-1873-y-1874Rigoberto Vargas
 
Heavy Chef March: Building Great Mobisites
Heavy Chef March: Building Great MobisitesHeavy Chef March: Building Great Mobisites
Heavy Chef March: Building Great MobisitesHeavy Chef
 
Ergonomía informática
Ergonomía informáticaErgonomía informática
Ergonomía informáticaTochimani
 
Device Fragmentation - Session @ MobileCamp 2011
Device Fragmentation - Session @ MobileCamp 2011Device Fragmentation - Session @ MobileCamp 2011
Device Fragmentation - Session @ MobileCamp 2011fitml.com
 
DEFINICION DE COMERCIO ELECTRONICO
DEFINICION DE COMERCIO ELECTRONICODEFINICION DE COMERCIO ELECTRONICO
DEFINICION DE COMERCIO ELECTRONICOgenni032
 
Crm gadget 2 go Features
Crm gadget 2 go FeaturesCrm gadget 2 go Features
Crm gadget 2 go FeaturesDaniel Jordan
 
Descargas catalogos-catalog14-2
Descargas catalogos-catalog14-2Descargas catalogos-catalog14-2
Descargas catalogos-catalog14-2Jose Velasquez
 
Marco Maggioni Design Portfolio
Marco Maggioni Design PortfolioMarco Maggioni Design Portfolio
Marco Maggioni Design PortfolioMarco Maggioni
 
Charla factores de exito en websites turisticos
Charla factores de exito en websites turisticosCharla factores de exito en websites turisticos
Charla factores de exito en websites turisticosEdwin Arley Bernal Holguin
 
El café en el alto ariari, la política para el agro y la crisis nacional en e...
El café en el alto ariari, la política para el agro y la crisis nacional en e...El café en el alto ariari, la política para el agro y la crisis nacional en e...
El café en el alto ariari, la política para el agro y la crisis nacional en e...Emilio Garcia
 
Catálogo Oriflame Costa Rica Noviembre-Diciembre (C12) 2016
Catálogo Oriflame Costa Rica Noviembre-Diciembre (C12) 2016Catálogo Oriflame Costa Rica Noviembre-Diciembre (C12) 2016
Catálogo Oriflame Costa Rica Noviembre-Diciembre (C12) 2016Karol Vargas
 

Andere mochten auch (18)

Cómo gustarle a Google
Cómo gustarle a GoogleCómo gustarle a Google
Cómo gustarle a Google
 
Llp ivt 2010-ro_064_ac traductores
Llp ivt 2010-ro_064_ac traductoresLlp ivt 2010-ro_064_ac traductores
Llp ivt 2010-ro_064_ac traductores
 
A Taste of Tech Tools: VoiceThread, Video Production, and Socrative
A Taste of Tech Tools: VoiceThread, Video Production, and SocrativeA Taste of Tech Tools: VoiceThread, Video Production, and Socrative
A Taste of Tech Tools: VoiceThread, Video Production, and Socrative
 
Costa rica-entre-1873-y-1874
Costa rica-entre-1873-y-1874Costa rica-entre-1873-y-1874
Costa rica-entre-1873-y-1874
 
BRETAGNE at Gulfood manufacturing 2014
BRETAGNE at Gulfood manufacturing 2014BRETAGNE at Gulfood manufacturing 2014
BRETAGNE at Gulfood manufacturing 2014
 
C10480162
C10480162C10480162
C10480162
 
Heavy Chef March: Building Great Mobisites
Heavy Chef March: Building Great MobisitesHeavy Chef March: Building Great Mobisites
Heavy Chef March: Building Great Mobisites
 
Ergonomía informática
Ergonomía informáticaErgonomía informática
Ergonomía informática
 
VIVEK KU PATEL
VIVEK KU PATELVIVEK KU PATEL
VIVEK KU PATEL
 
Device Fragmentation - Session @ MobileCamp 2011
Device Fragmentation - Session @ MobileCamp 2011Device Fragmentation - Session @ MobileCamp 2011
Device Fragmentation - Session @ MobileCamp 2011
 
Alexei Papin
Alexei Papin  Alexei Papin
Alexei Papin
 
DEFINICION DE COMERCIO ELECTRONICO
DEFINICION DE COMERCIO ELECTRONICODEFINICION DE COMERCIO ELECTRONICO
DEFINICION DE COMERCIO ELECTRONICO
 
Crm gadget 2 go Features
Crm gadget 2 go FeaturesCrm gadget 2 go Features
Crm gadget 2 go Features
 
Descargas catalogos-catalog14-2
Descargas catalogos-catalog14-2Descargas catalogos-catalog14-2
Descargas catalogos-catalog14-2
 
Marco Maggioni Design Portfolio
Marco Maggioni Design PortfolioMarco Maggioni Design Portfolio
Marco Maggioni Design Portfolio
 
Charla factores de exito en websites turisticos
Charla factores de exito en websites turisticosCharla factores de exito en websites turisticos
Charla factores de exito en websites turisticos
 
El café en el alto ariari, la política para el agro y la crisis nacional en e...
El café en el alto ariari, la política para el agro y la crisis nacional en e...El café en el alto ariari, la política para el agro y la crisis nacional en e...
El café en el alto ariari, la política para el agro y la crisis nacional en e...
 
Catálogo Oriflame Costa Rica Noviembre-Diciembre (C12) 2016
Catálogo Oriflame Costa Rica Noviembre-Diciembre (C12) 2016Catálogo Oriflame Costa Rica Noviembre-Diciembre (C12) 2016
Catálogo Oriflame Costa Rica Noviembre-Diciembre (C12) 2016
 

Ähnlich wie Application development using Google Apps Script

Best practise 5 anwendungsfälle der google analytics api
Best practise 5 anwendungsfälle der google analytics apiBest practise 5 anwendungsfälle der google analytics api
Best practise 5 anwendungsfälle der google analytics apie-dialog GmbH
 
Machbarkeitsstudie: Innovation Management Tool (BASF, Hochschule Mannheim), 2019
Machbarkeitsstudie: Innovation Management Tool (BASF, Hochschule Mannheim), 2019Machbarkeitsstudie: Innovation Management Tool (BASF, Hochschule Mannheim), 2019
Machbarkeitsstudie: Innovation Management Tool (BASF, Hochschule Mannheim), 2019Michael Groeschel
 
02 Webtechnologien - Informatiosinstegration und Webportale
02 Webtechnologien - Informatiosinstegration und Webportale02 Webtechnologien - Informatiosinstegration und Webportale
02 Webtechnologien - Informatiosinstegration und Webportaleklickandbau
 
SharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die ZukunftSharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die ZukunftDavid Schneider
 
Webtechnologien Grundlagen und Auswahl geeigneter Web Rahmenwerke
Webtechnologien Grundlagen und Auswahl geeigneter Web RahmenwerkeWebtechnologien Grundlagen und Auswahl geeigneter Web Rahmenwerke
Webtechnologien Grundlagen und Auswahl geeigneter Web Rahmenwerkeadoubleu
 
Ueberlegungen Projektmanagement Web Applications
Ueberlegungen Projektmanagement Web ApplicationsUeberlegungen Projektmanagement Web Applications
Ueberlegungen Projektmanagement Web ApplicationsGünther Haslbeck
 
Projektbeschreibung "E-Commerce Insights Plattform für den SAP Store" 2020
Projektbeschreibung "E-Commerce Insights Plattform für den SAP Store" 2020Projektbeschreibung "E-Commerce Insights Plattform für den SAP Store" 2020
Projektbeschreibung "E-Commerce Insights Plattform für den SAP Store" 2020Michael Groeschel
 
[ecspw2013] Session Technik 01: ecspand 3.0 - Vorgangsbearbeitung für den Sha...
[ecspw2013] Session Technik 01: ecspand 3.0 - Vorgangsbearbeitung für den Sha...[ecspw2013] Session Technik 01: ecspand 3.0 - Vorgangsbearbeitung für den Sha...
[ecspw2013] Session Technik 01: ecspand 3.0 - Vorgangsbearbeitung für den Sha...d.velop international
 
Python, Plone und Zope in der Luft- und Raumfahrtforschung
Python, Plone und Zope in der Luft- und RaumfahrtforschungPython, Plone und Zope in der Luft- und Raumfahrtforschung
Python, Plone und Zope in der Luft- und RaumfahrtforschungAndreas Schreiber
 
AWS Initiate Berlin - Maschinelles Lernen - Chancen, Werkzeuge und Beispiel-A...
AWS Initiate Berlin - Maschinelles Lernen - Chancen, Werkzeuge und Beispiel-A...AWS Initiate Berlin - Maschinelles Lernen - Chancen, Werkzeuge und Beispiel-A...
AWS Initiate Berlin - Maschinelles Lernen - Chancen, Werkzeuge und Beispiel-A...Amazon Web Services
 
Automatisierte Generierung hybrider Apps für Mobile Devices
Automatisierte Generierung hybrider Apps für Mobile DevicesAutomatisierte Generierung hybrider Apps für Mobile Devices
Automatisierte Generierung hybrider Apps für Mobile DevicesJens Küsters
 
ScriptRunner - Eine Einführung
ScriptRunner - Eine EinführungScriptRunner - Eine Einführung
ScriptRunner - Eine EinführungHeiko Brenn
 
USPs (Alleinstellungsmerkmale) zum Company-Messenger
USPs (Alleinstellungsmerkmale) zum Company-MessengerUSPs (Alleinstellungsmerkmale) zum Company-Messenger
USPs (Alleinstellungsmerkmale) zum Company-MessengerThomas Teufel
 
Trends auf dem ECM-Markt - Bernhard Zöller, Zöller & Partner GmbH
Trends auf dem ECM-Markt - Bernhard Zöller, Zöller & Partner GmbHTrends auf dem ECM-Markt - Bernhard Zöller, Zöller & Partner GmbH
Trends auf dem ECM-Markt - Bernhard Zöller, Zöller & Partner GmbHNicole Szigeti
 
Best Practice - Integration Von Open Text Web Solutions Mit Livelink Dm
Best Practice - Integration Von Open Text Web Solutions Mit Livelink DmBest Practice - Integration Von Open Text Web Solutions Mit Livelink Dm
Best Practice - Integration Von Open Text Web Solutions Mit Livelink DmTobias Mitter
 
Best Practise - Integration von Open Text Web Solutions mit Livelink DM
Best Practise - Integration von Open Text Web Solutions mit Livelink DMBest Practise - Integration von Open Text Web Solutions mit Livelink DM
Best Practise - Integration von Open Text Web Solutions mit Livelink DMnetmedianer GmbH
 
Python in der Luft- und Raumfahrt
Python in der Luft- und RaumfahrtPython in der Luft- und Raumfahrt
Python in der Luft- und RaumfahrtAndreas Schreiber
 
e-projekt 2.0
e-projekt 2.0e-projekt 2.0
e-projekt 2.0bahaa318i
 

Ähnlich wie Application development using Google Apps Script (20)

Best practise 5 anwendungsfälle der google analytics api
Best practise 5 anwendungsfälle der google analytics apiBest practise 5 anwendungsfälle der google analytics api
Best practise 5 anwendungsfälle der google analytics api
 
wolter & works - die web manufaktur - Cloud Computing
wolter & works - die web manufaktur - Cloud Computingwolter & works - die web manufaktur - Cloud Computing
wolter & works - die web manufaktur - Cloud Computing
 
Machbarkeitsstudie: Innovation Management Tool (BASF, Hochschule Mannheim), 2019
Machbarkeitsstudie: Innovation Management Tool (BASF, Hochschule Mannheim), 2019Machbarkeitsstudie: Innovation Management Tool (BASF, Hochschule Mannheim), 2019
Machbarkeitsstudie: Innovation Management Tool (BASF, Hochschule Mannheim), 2019
 
02 Webtechnologien - Informatiosinstegration und Webportale
02 Webtechnologien - Informatiosinstegration und Webportale02 Webtechnologien - Informatiosinstegration und Webportale
02 Webtechnologien - Informatiosinstegration und Webportale
 
SharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die ZukunftSharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die Zukunft
 
Webtechnologien Grundlagen und Auswahl geeigneter Web Rahmenwerke
Webtechnologien Grundlagen und Auswahl geeigneter Web RahmenwerkeWebtechnologien Grundlagen und Auswahl geeigneter Web Rahmenwerke
Webtechnologien Grundlagen und Auswahl geeigneter Web Rahmenwerke
 
Ueberlegungen Projektmanagement Web Applications
Ueberlegungen Projektmanagement Web ApplicationsUeberlegungen Projektmanagement Web Applications
Ueberlegungen Projektmanagement Web Applications
 
Projektbeschreibung "E-Commerce Insights Plattform für den SAP Store" 2020
Projektbeschreibung "E-Commerce Insights Plattform für den SAP Store" 2020Projektbeschreibung "E-Commerce Insights Plattform für den SAP Store" 2020
Projektbeschreibung "E-Commerce Insights Plattform für den SAP Store" 2020
 
[ecspw2013] Session Technik 01: ecspand 3.0 - Vorgangsbearbeitung für den Sha...
[ecspw2013] Session Technik 01: ecspand 3.0 - Vorgangsbearbeitung für den Sha...[ecspw2013] Session Technik 01: ecspand 3.0 - Vorgangsbearbeitung für den Sha...
[ecspw2013] Session Technik 01: ecspand 3.0 - Vorgangsbearbeitung für den Sha...
 
Csb Kundenforum 2007
Csb Kundenforum 2007Csb Kundenforum 2007
Csb Kundenforum 2007
 
Python, Plone und Zope in der Luft- und Raumfahrtforschung
Python, Plone und Zope in der Luft- und RaumfahrtforschungPython, Plone und Zope in der Luft- und Raumfahrtforschung
Python, Plone und Zope in der Luft- und Raumfahrtforschung
 
AWS Initiate Berlin - Maschinelles Lernen - Chancen, Werkzeuge und Beispiel-A...
AWS Initiate Berlin - Maschinelles Lernen - Chancen, Werkzeuge und Beispiel-A...AWS Initiate Berlin - Maschinelles Lernen - Chancen, Werkzeuge und Beispiel-A...
AWS Initiate Berlin - Maschinelles Lernen - Chancen, Werkzeuge und Beispiel-A...
 
Automatisierte Generierung hybrider Apps für Mobile Devices
Automatisierte Generierung hybrider Apps für Mobile DevicesAutomatisierte Generierung hybrider Apps für Mobile Devices
Automatisierte Generierung hybrider Apps für Mobile Devices
 
ScriptRunner - Eine Einführung
ScriptRunner - Eine EinführungScriptRunner - Eine Einführung
ScriptRunner - Eine Einführung
 
USPs (Alleinstellungsmerkmale) zum Company-Messenger
USPs (Alleinstellungsmerkmale) zum Company-MessengerUSPs (Alleinstellungsmerkmale) zum Company-Messenger
USPs (Alleinstellungsmerkmale) zum Company-Messenger
 
Trends auf dem ECM-Markt - Bernhard Zöller, Zöller & Partner GmbH
Trends auf dem ECM-Markt - Bernhard Zöller, Zöller & Partner GmbHTrends auf dem ECM-Markt - Bernhard Zöller, Zöller & Partner GmbH
Trends auf dem ECM-Markt - Bernhard Zöller, Zöller & Partner GmbH
 
Best Practice - Integration Von Open Text Web Solutions Mit Livelink Dm
Best Practice - Integration Von Open Text Web Solutions Mit Livelink DmBest Practice - Integration Von Open Text Web Solutions Mit Livelink Dm
Best Practice - Integration Von Open Text Web Solutions Mit Livelink Dm
 
Best Practise - Integration von Open Text Web Solutions mit Livelink DM
Best Practise - Integration von Open Text Web Solutions mit Livelink DMBest Practise - Integration von Open Text Web Solutions mit Livelink DM
Best Practise - Integration von Open Text Web Solutions mit Livelink DM
 
Python in der Luft- und Raumfahrt
Python in der Luft- und RaumfahrtPython in der Luft- und Raumfahrt
Python in der Luft- und Raumfahrt
 
e-projekt 2.0
e-projekt 2.0e-projekt 2.0
e-projekt 2.0
 

Application development using Google Apps Script

  • 1. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Advanced Software Engineering Vorlesung 01.04.2016 : Anwendungsentwicklung mit Dr. Andreas Walter Google Apps Script mail@awalter.info
  • 2. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Anwendungsentwicklung mit Google Apps Script Inhaltsverzeichnis - Einleitung: Generelle Arten der Anwendungsentwicklung - Einsatzbeispiele für Google Apps Script - Use-Case: Verwaltung von Buchungen einer Ferienwohnung - Getting Started: Implementierungsbeispiele mit Google Apps Script - Aufgaben für Praktikum Anwendungsentwicklung mit Google Apps Script2 01.04.2016
  • 3. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Einleitung: Generelle Arten der Anwendungsentwicklung Grad der Verteilung von Diensten nach Intranet und Cloudanwendungen - Intranet: Ressourcen sind in internem Firmennetz - Cloud: Ressourcen sind über Internet, zumeist als Clouddienst verfügbar (Amazon AWS, Microsoft Azure, Google Cloud) Alles Lokal (Intranet) – höchste Sicherheitsanforderungen, z.b. Banken - Datenbank, Dienste lokal - Lokale Entwicklungsumgebung und Ausführung Hybrid (Intranet & Cloud) – hohe Sicherheitsanforderungen, z.B. Krankenhäuser (Patientendaten lokal, Statistiken zentral) - Einige Dienste in Cloud (z.B. Abrechnungsdaten) - Datenbank im Intranet - Lokale Entwicklungsumgebung und Ausführung Anwendungsentwicklung mit Google Apps Script3 01.04.2016
  • 4. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Generelle Arten der Anwendungsentwicklung (2) Hybrid mit lokaler Ausführung (Cloud) – webbasierte Spiele - z.b. Dienste in Cloud, Datenbank in Cloud - Lokale Ausführung, z.b. Spiel mit hohen Anforderungen an Grafikkarte Cloud Only – Webanwendungen (public, einfache Skalierbarkeit) - Browser zur Ausführung der Anwendung - Browser zum Zugriff auf Entwicklungsumgebung - Dienste und Datenhaltung in der Cloud Google Apps Script: nutzt Cloud-Umgebung von Google  wenig Installationsaufwand, komfortable Entwicklung webbasierter Anwendungen, Leistungsfähige Cloudumgebung zur Ausführung der Anwendungen. Anwendungsentwicklung mit Google Apps Script4 01.04.2016
  • 5. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Google Apps Script: Übersicht Anwendungsentwicklung mit Google Apps Script5 01.04.2016 - Erlaubt die Erstellung von (Web)Anwendungen unter Verwendung von JavaScript. - Erweiterung von Google Anwendungen und eigene Menüs in Google Anwendungen - Automatisierung zwischen Google Diensten und zu externen Diensten - Einbindung in Google Sites (Komponenten einer Webseite) - Speichern von Daten / Dateien in Google Drive - Code wird mit Hilfe einer browserbasierten Entwicklungsumgebung erstellt, getestet und publiziert https://www.google.com/script/start/
  • 6. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 EINSATZBEISPIELE FÜR GOOGLE APPS SCRIPT Google Apps Script Anwendungsentwicklung mit Google Apps Script6 01.04.2016
  • 7. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Add-Ons für Google Anwendungen Add-Ons erweitern den Funktionsumfang bestehender Anwendungen. Vergleichbar mit Macros in Microsoft Office Beispiel: ein ausgewählter Text soll automatisch von Google Translate übersetzt werden - Google Translate: Textübersetzung von ausgewählter Sprache in Zielsprache - Technik: webbasierte Formulare (HTML, POST Requests) Anwendungsentwicklung mit Google Apps Script7 01.04.2016
  • 8. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Eigene Menüs in Google Anwendungen Eigene Menüs erlauben zusätzliche Methoden, z.B. Berechnungen Beispiel: Eigenes Menü zur Berechnung anderer Maßeinheiten - Zusätzliches Menü in Google Sheets, erlaubt Umrechnung von Meter – Meilen, schreibt Ergebnis in neue Zelle - Technik: Auslesen von Tabellenzellen und Schreiben neuer Werte Anwendungsentwicklung mit Google Apps Script8 01.04.2016
  • 9. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Auswertungen von Formularen Anwendungsentwicklung mit Google Apps Script9 01.04.2016 Formulare erlauben das strukturierte Sammeln von Daten zur späteren Auswertung Beispiel: Sammeln von Vortragsthemen für eine Konferenz Technik: - Google Forms zur Abfrage von Daten wie Vortragstitel, Startzeit - Google Apps Script zur Auswertung - API zu Google Calendar zum Erstellen von Termineinträgen
  • 10. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Automatisierung in Google Anwendungen Regelmäßig ausgeführte Tasks erlauben die Automatisierung von umfangreichen Abläufen. Beispiel: Erstellung von Statistiken zu empfangenen Emails Technik - Geplante Tasks starten die Ausführung der Anwendung, hier am Monatsanfang - Auslesen von Emails in Gmail - Schreiben von Statistikdaten Sheets - Erstellung von Charts auf Basis der Tabellendaten Anwendungsentwicklung mit Google Apps Script10 01.04.2016
  • 11. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Automatisierung zwischen Google Anwendungen Anwendungen, welche mehrere Google Dienste verwenden, z.B. Gmail zum Emailversand, Google Sheets zur Speicherung von Daten http://googleappsdeveloper.blogspot.de/2012/04/approval-workflow-using-apps-script.html Beispiel Zustimmung zu bestimmten Vorgängen durch Vorgesetze und Kommissionen Technik - Automatisches lesen und versenden von Emails - Anzeigen von Formularen - Automatisches Speichern von Formulareingaben in Google Sheets Anwendungsentwicklung mit Google Apps Script11 01.04.2016
  • 12. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Automatisierung zu Externen Diensten Daten werden in Google Anwendungen gesammelt, z.B. Formularen. Nach Eingabe werden diese zu externen Anwendungen übertragen. Beispiel: senden von Formulareingaben zu Salesforce Technik - Events: Ereignisse können zeitgesteuert oder nach einem Ereignis wie eingehenden Formularen ausgelöst werden - Übertragen von Formulardaten zu externer REST Schnittstelle http://googleappsdeveloper.blogspot.de/2012/03/integrating-google-docs-with.html Anwendungsentwicklung mit Google Apps Script12 01.04.2016
  • 13. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Speicherung von Daten / Dateien Google Apps Script verwendet zur Datenhaltung den Dienst Google Drive (Cloudbasierter Datenspeicher). Daten können einfach geschrieben und gelesen werden Anwendungsentwicklung mit Google Apps Script13 01.04.2016
  • 14. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 USE-CASE: VERWALTUNG VON BUCHUNGEN EINER FERIENWOHNUNG Google Apps Script Anwendungsentwicklung mit Google Apps Script14 01.04.2016
  • 15. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Use Case Beschreibung Buchungen Eine Ferienwohnung publiziert ihr Angebot zu verfügbaren Buchungskapazitäten bei Buchungsportalen wie booking.com, airbnb.com, traum-ferienwohnungen.de etc. - Eingehende Buchungen von den Portalen werden per Email gemeldet. - Buchungen sollen automatisch ausgelesen werden und strukturiert gespeichert werden. - Dem Gast soll eine Buchungsbestätigung geschickt werden. Dem Betreiber eine Email mit einer Zusammenfassung zur Buchung. - 14 Tage vor Anreise sollen dem Gast Informationen rund um die Anreise und den Attraktionen rund um die Ferienwohnung geschickt werden. - Ein Tag vor Anreise soll dem Betreiber automatisch eine Email mit Rechnung, Quittung und Anreiseinformationen für den Gast gesandt werden. . Anwendungsentwicklung mit Google Apps Script15 01.04.2016
  • 16. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 1) Automatisches Auslesen von Buchungen aus Portalen Portal hier: booking.com. Kunde bucht bei Booking.com, Booking.com schickt Email an Betreiber. Anwendungsentwicklung mit Google Apps Script16 01.04.2016
  • 17. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 2) Automatisches Auslesen der Buchungsdetails Pro Buchung stellt booking.com die Buchungsdetails bereit Anwendungsentwicklung mit Google Apps Script17 01.04.2016
  • 18. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Ausführung durch Apps Script 1) Task liest regelmäßig Gmail Emails (alle 10 Minuten) 2) Sobald eine Email mit Betreff „Booking.com - Eine neue Buchung!“ des Absenders noreply@booking.com vorliegt, wird diese gelesen 3) Ein HTML Parser ( Teil von Apps Script ) liest den in Email enthaltenen Link. Über reguläre Ausdrücke findet der Parser wichtige Informationen in der Seite (Name des Buchers, Anreise, Abreise…) 4) Die Buchungsinformationen werden in Google Sheets geschrieben (getrennt nach Buchungsdaten und Kundendaten) 5) Eine Email wird an den Buchenden geschickt, um die Buchung zu bestätigen und weitere Informationen zur Bezahlung zu senden 6) Dem Betreiber wird eine Email zugestellt, um die Buchung direkt anzuzeigen (ohne sich erst auf Booking.com einloggen zu müssen) 7) 14 Tage vor Anreise (per Tasks) wird dem Buchenden eine Email mit Informationen zur Buchung geschickt 8) Ein Tag vor Anreise wird Rechnung an Betreiber per PDF geschickt Anwendungsentwicklung mit Google Apps Script18 01.04.2016
  • 19. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 3) Schreiben von Buchungsdaten in Google Sheets Anwendungsentwicklung mit Google Apps Script19 01.04.2016
  • 20. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 4) Automatisches Erstellen von Rechnungen - Ein täglich gestarteter Task prüft, ob am nächsten Tag eine Anreise ist - Falls ja, werden die Buchungsdaten aus den entsprechenden Sheets gelesen. - Eine Vorlage in Google Docs wird geladen und die entsprechenden Buchungsdaten eingefügt. - Aus dem Dokument wird automatisch ein PDF generiert und an Betreiber geschickt - Über ein externes SMS Gateway bekommt Kunde eine SMS geschickt, um nach der geplanten Anreisezeit zu fragen. Anwendungsentwicklung mit Google Apps Script20 01.04.2016
  • 21. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Use Case Beschreibung Buchungskalender Der Buchungskalender soll die vorhandenen Buchungen in übersichtlicher Form darstellen. - Zu jedem Kalendertag soll die Verfügbarkeit angezeigt werden - Für verfügbare Tage sollen die Raten angezeigt werden. Es muss möglich sein, für bestimmte Tage Saisonraten zu hinterlegen mit höheren Preisen - Für Tage mit Buchungen muss durch einfachen Klick auf den Tag angezeigt werden, welcher Gast gebucht hat Anwendungsentwicklung mit Google Apps Script21 01.04.2016
  • 22. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Buchungskalender Ein stündlich gestarteter Task liest alle Buchungen aus Buchungstabelle. Ein weiteres Sheet „Kalender“ wird aktualisiert mit den Informationen zur Verfügbarkeit. Anwendungsentwicklung mit Google Apps Script22 01.04.2016
  • 23. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Buchungsdetails Jede Buchung ist verlinkt zu einer Buchungsdetailseite. Technik: Buchungsdetailseite ist eine Webanwendung. Als HTTP GET Parameter nimmt sie BuchungsId entgegen. Intern wird die Buchung geladen und als Webseite angezeigt. Anzeige über Google Web Toolkit Funktionalitäten Anwendungsentwicklung mit Google Apps Script23 01.04.2016
  • 24. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Use Case Beschreibung: Webseite zur Ferienwohnung Die Ferienwohnung soll durch eine Webseite im Internet gezeigt werden. - Die Webseite soll die Verfügbarkeiten des aktuellen und des nächsten Tages auf der Webseite anzeigen - Ein Buchungsformular soll es ermöglichen, Verfügbarkeiten anzuzeigen - Die aktuellen Preise sollen auf der Webseite angezeigt werden - Zusätzlich weitere statische Seiten wie Bilder, Informationen, etc. Anwendungsentwicklung mit Google Apps Script24 01.04.2016
  • 25. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Webseite: Anzeige Verfügbarkeiten heute / morgen Webseite: www.apartment-baden.com Anwendungsentwicklung mit Google Apps Script25 01.04.2016
  • 26. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Webseite: Anzeige Verfügbarkeiten / Buchung Anwendungsentwicklung mit Google Apps Script26 01.04.2016
  • 27. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Webseite - Technik - Webseite läuft auf eigenem Webserver - Servlet-Container mit REST Service – wird über einen Task stündlich von Apps Script aufgerufen – die aktuellsten Verfügbarkeiten und Preise werden übertragen. Servlet generiert aus neuesten Daten statische HTML Seiten der Homepage. - REST Service in Apps Script – erlaubt Eingabeparameter wie Anreise / Abreisedatum und Anzahl Personen. Service prüft Verfügbarkeit und gibt entsprechend Preise zurück. - Webseite: JQUERY zur Anfrage des REST Services per AJAX Request nach Preisen, automatische Aktualisierung der Webseite - CSS / JQUERY zur korrekten Skalierung der Webseite je nach Gerät (Responsive Web Design) Anwendungsentwicklung mit Google Apps Script27 01.04.2016
  • 28. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Use Case Beschreibung: Portal für Betreiber Dem Betreiber soll eine webbasierte Portalseite zur Verfügung gestellt werden. - Der Betreiber soll Zugriff auf den Buchungskalender haben - Ein Buchungsformular soll den Eintrag neuer Buchungen erlauben - Statistiken sollen zeigen, wie sich Buchungen nach Monaten verteilen - Das Portal soll zeigen, wie häufig die Webseite besucht wird - Falls AdWords auf Suchmaschine gebucht werden, soll gezeigt werden, wie häufig diese geschalten wurde und mit welchen Suchbegriffen - Ein Dashboard soll einen schnellen Überblich zum erzielten Umsatz und den nächsten Buchungen geben. Anwendungsentwicklung mit Google Apps Script28 01.04.2016
  • 29. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Google Sites: Portalbasierte Webseiten erstellen https://www.google.com/sites/overview.html Google Sites erlaubt die Erstellung von Webseiten. Ein Content Management System erlaubt die Pflege einzelner Seiten Jede Seite kann wahlweise mit statischen Inhalt, aber auch mit dynamischem Inhalt gefüllt werden. Dynamische Inhalte können publizierte Sheets sein, aber auch mit Apps Script erstellte Webseiten Anwendungsentwicklung mit Google Apps Script29 01.04.2016
  • 30. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Dashboard Dashboard enthält Komponenten, die aus Sheets publiziert wurden. Jedes Sheet kann als Webkomponente publiziert werden. Es aktualisiert seinen Inhalt dann automatisch nach Änderungen Anwendungsentwicklung mit Google Apps Script30 01.04.2016
  • 31. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Publiziertes Sheet Buchungskalender Komplettes Sheet Buchungskalender als Webkomponente publiziert Anwendungsentwicklung mit Google Apps Script31 01.04.2016
  • 32. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Publizierte Web App: Buchungsformular Buchungsformular wurde implementiert unter Verwendung von Google Web Toolkit (GWT) Komponenten. Diese sind in Apps Script integriert. Anwendungsentwicklung mit Google Apps Script32 01.04.2016
  • 33. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Auswertung über mehrere Dienste Hier: Auswertung von Buchungen, AdWords und Google Analytics Gegenüberstellung von Anzahl Buchungen, Besuchern und AdWords Nutzung in einer Komponente. Abfrage von Google Analytics und Google AdWords API, schreiben der Daten in Excel Sheet. Anwendungsentwicklung mit Google Apps Script33 01.04.2016
  • 34. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Daten aus externen Diensten: hier AdWords Abfrage der AdWords Daten. AdWords API wird regelmäßig abgefragt, Ergebnisse in Sheets geschrieben Authentifizierung Apps Script erlaubt drei Arten von Authentifizierung - Single-Sign-On: gilt für alle direkten Google Dienste, z.b. GMail. Benutzer muss einmalig Apps Script Authentifizieren für Zugriff - Apps Permissions: gilt für weitere Google Dienste wie AdWords. Entwickler muss Zugriff einmalig Authentifizieren über Developer Console - OAuth: hauptsächlich externe Dienste (siehe Folie Twitterintegration) https://developers.google.com/apps-script/guides/services/authorization Anwendungsentwicklung mit Google Apps Script34 01.04.2016
  • 35. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 AdWords: Auslesen häufiger Suchwörter Hier: häufigste Suchwörter der letzten Woche Anwendungsentwicklung mit Google Apps Script35 01.04.2016
  • 36. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Zusammenfassung Use Case Wie gezeigt erlaubt Google Apps Script die umfangreiche Automatisierung von Abläufen innerhalb von Google Anwendungen, aber auch aus externen Diensten beziehungsweise zu externen Diensten. - Datenhaltung: per Google Sheets (Google Drive), auch zu weiteren Diensten BigData oder dokumentbasiert - Tasks / Events: per Tasks / Events kann direkt auf ein Ereignis reagiert werden, z.b. eingehende Email - Webanwendungen: erlauben die strukturierte Eingabe von Daten und Weiterverarbeitung (siehe Buchungsformular) - Reports / Statistiken: Generierung umfangreicher Reports und Statistiken auf Basis von gesammelten Daten - Google Sites: Erstellung von skalierbaren Webseiten auf Basis der Google Cloud Infrastruktur. Anwendungsentwicklung mit Google Apps Script36 01.04.2016
  • 37. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 GETTING STARTED: IMPLEMENTIERUNGSBEISPIELE MIT GOOGLE APPS SCRIPT Google Apps Script Anwendungsentwicklung mit Google Apps Script37 01.04.2016
  • 38. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Generelle Schritte 1) Google Apps Script erfordert einen Google Account. Falls nicht vorhanden, kann dieser kostenlos erstellt werden 2) Genereller Einstieg zu Anwendungen mit Google Apps Script ist über Google Drive. Öffne drive.google.com 3) Einfachster Einstieg ist über Google Sheet. Klicke Button „New“ -> „Google Sheets“ 4) Gebe dem Sheet einen Namen, z.b. „Apps Script Tutorial“ 5) Um den browserbasierten Apps Editor zu öffnen, klicke auf „Tools“ -> „Skripteditor“ Anwendungsentwicklung mit Google Apps Script38 01.04.2016
  • 39. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Der Apps Script Editor: Hauptansicht Der Editor erlaubt im mittleren Bereich das Erstellen von Funktionen. Das Pulldown darüber erlaubt das Auswählen einer Methode. Über den Play Button wird diese ausgeführt. Debug geht mit dem Käfer Symbol daneben. Die Konsoleausgabe ist verfügbar über View -> Logs oder Ctrl-Enter. Anwendungsentwicklung mit Google Apps Script39 01.04.2016
  • 40. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Implementierungssprache: JavaScript 1.6 Google Apps Script wird mittels der Programmiersprache JavaScript 1.6 implementiert. Einige Beispiele, Details siehe z.B. http://www.html-seminar.de/javascript-datentypen.htm // variablenzuweisung, untypisiert var responseText=„Hallo“ // String var maxCount = 1 // int // for Schleifen for (var i = 0; i < result.length; i++) { // process object result[i] } // Webseite laden -> gibt HTML / XML / JSON zurück var response = UrlFetchApp.fetch(url, options); Anwendungsentwicklung mit Google Apps Script40 01.04.2016
  • 41. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Neue Dateien erstellen und Versionierung Über das Menü File -> New -> Script File können weitere Skriptdateien dem Projekt hinzugefügt werden. Dies erlaubt das Aufteilen von Programmteilen nach ihrer Funktion (vgl. Bibliotheken), z.b. eine Datei für Speichermethoden Über das Menü File -> Manage Versions kann das Projekt versioniert werden. Dies ermöglicht das Publizieren einer bestimmten Version z.b. als Webanwendung Anwendungsentwicklung mit Google Apps Script41 01.04.2016
  • 42. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Einbinden von eigenen und 3rd Party Bibliotheken Einzelne Projekte können als Bibliothek in anderen Projekten wiederverwendet werden (Ressources -> Libraries …. Ebenso können Bibliotheken von Drittanbietern beziehungsweise von Google eingebunden werden. (Ressources -> Advanced Google Services…) Einbindung von Gmail Api Aktivierung: Folge Link zu Google Developers Console. Suche API, hier Gmail. Klicke auf „Aktivieren“ Benutzung: Gmail.<function>, z.b. Gmail.newLabel() Anwendungsentwicklung mit Google Apps Script42 01.04.2016
  • 43. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 6 Einfache Schritte zur Webanwendung 1) Erstelle eine Skript Datei „examplewebapp.gs“ 2) Erstelle eine Methode doGet(e) (HTTP GET). 3) Füge folgenden Text ein function doGet() { return ContentService.createTextOutput("simple web app output"); } 4) Klicke „File“ -> „Manage Versions“, erstelle neue Version z.b. „FirstWeb“ 5) Klicke „Deploy“ -> „Publish as WebApp“ 6) Teste Anwendung, klicke auf „Test Web App for your latest code“ Anwendungsentwicklung mit Google Apps Script43 01.04.2016
  • 44. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Auslesen von Request Parametern aus URL In einer Webanwendung, können bei GET und POST Anfragen die Parameter einfach ausgelesen werden Beispiel: site?action=list&maxValues=5 function doGet(e) <- entry point GET Request, e enthält Parameter { var action=e.parameter.action; // action = list var maxValues=e.parameter.maxValues // maxValues=5 } Anwendungsentwicklung mit Google Apps Script44 01.04.2016
  • 45. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Emails schreiben und lesen Email Funktion über Google Mail kann direkt über Script aufgerufen werden Email schreiben MailApp.sendEmail(<receiver>, <subject>, <mailtext>); Emails lesen: Library GmailApp. Beispiel hier: Suche Mails eines Absenders var threads = GmailApp.search('noreply@booking.com'); var messagesFound=threads.length; Logger.log("messages found :" +messagesFound); for (var i = 0; i < threads.length; i++) { // read email , z.B var subject=threads[i].getFirstMessageSubject(); } Anwendungsentwicklung mit Google Apps Script45 01.04.2016
  • 46. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Daten in Sheets schreiben (1) Per Google Sheets kann in Sheets geschrieben werden Vorraussetzungen - Id des Google Sheets. Lese aus URL Teil <id> https://docs.google.com/spreadsheets/d/<id>/edit Falls https://docs.google.com/spreadsheets/d/1234/edit => id = 1234 - Name des Sheets in das geschrieben werden soll, z.b. Sheet1 Auf ein Sheet zugreifen var sheet = SpreadsheetApp.openById(„<id>").getSheetByName(„<sheet- name"); Anwendungsentwicklung mit Google Apps Script46 01.04.2016
  • 47. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Daten in Sheets schreiben (2) Anzahl vorhandener Zeilen ermitteln. Erste Zell hat Koordinaten (1,1) // anzahl Zeilen bereits vorhanden var numRows = rows.getNumRows(); // Zeile, in die nächster Eintrag zu schreiben ist var rowNr=numRows+1; var cellNr=1; Zeilenwerte schreiben // write in cell 1 sheet.getRange(rowNr, cellNr).setValue(“Zelle 1”); // write in cell 2 cellNr++; sheet.getRange(rowNr, cellNr).setValue(“Zelle 2”); Anwendungsentwicklung mit Google Apps Script47 01.04.2016
  • 48. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Daten aus Sheets lesen Voraussetzungen wie bei Schreiben : id, Name Tabellenblatt // Referenz auf Sheet var sheet = SpreadsheetApp.openById(„<id>").getSheetByName(„<sheet-name"); // rows : enthält Referenz auf die Daten, values = die Werte var rows = sheet.getDataRange(); var numRows = rows.getNumRows(); var values = rows.getValues(); for (var x=1;x<numRows;x++) { var row = values[x]; resultentry.value1 = row[0]; resultentry.value2 = row[1]; Anwendungsentwicklung mit Google Apps Script48 01.04.2016
  • 49. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Sheets publizieren Sheets können publiziert werden, um seinen Inhalt per Browser aufrufen oder in Google Sites integrieren zu können. File -> Publish to the web Anwendungsentwicklung mit Google Apps Script49 01.04.2016
  • 50. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Daten von externen Diensten lesen (1) Google Apps Script ermöglicht das Auslesen von Diensten. Hierzu wird Authentification (OAuth) unterstützt, ebenso das Lesen struktierierter Daten wie z.B. JSON Serialisierung. Beispiel: Lesen der neuesten Tweets von Twitter OAuth 1 / 2 Serviceschnittstelle erfordert Authentifizierung mittels Tokens. Nach einer Registrierung beim Service erhält man Consumer Key und Consumer Key Secret Beispiel: Twitter , https://apps.twitter.com/app/ - Erstelle eine neue App, danach werden die Tokens angezeigt Anwendungsentwicklung mit Google Apps Script50 01.04.2016
  • 51. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Daten von externen Diensten lesen (2) – OAuth Token Ziel von OAuth Anfragen sind der Erhalt eines gültigen Tokens // Encode consumer key and secret var tokenUrl = "https://api.twitter.com/oauth2/token"; var tokenCredential = Utilities.base64EncodeWebSafe( TWITTER_CONSUMER_KEY + ":" + TWITTER_CONSUMER_SECRET); // Obtain a bearer token with HTTP POST request var tokenOptions = { headers : { Authorization: "Basic " + tokenCredential, "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8" }, method: "post", payload: "grant_type=client_credentials" }; var responseToken = UrlFetchApp.fetch(tokenUrl, tokenOptions); var parsedToken = JSON.parse(responseToken); var token = parsedToken.access_token; Logger.log("token : " +token); Anwendungsentwicklung mit Google Apps Script51 01.04.2016 URL des Services Token Werte Setzen URLFetchApp lädt http ressourcen JSON Parsen Json.parse
  • 52. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Daten von externen Diensten lesen (3) – Api Nutzen Im Beispiel werden die letzten Tweets eines Accounts geladen // Read twitter TimeLine of User ApartmentBaden var apiUrl = "https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=ApartmentBaden"; var apiOptions = { headers : { Authorization: 'Bearer ' + token }, "method" : "get„ }; var responseApi = UrlFetchApp.fetch(apiUrl, apiOptions); var result = ""; if (responseApi.getResponseCode() == 200) { // Parse the JSON encoded Twitter API response var tweets = JSON.parse(responseApi.getContentText()); if (tweets) { for (var i = 0; i < tweets.length; i++) { var tweet = tweets[i].text; var date = new Date(tweets[i].created_at); result += "[" + date.toUTCString() + "]" + tweet + " nn "; } } } Logger.log(result); <- zeigt jeweils pro Tweet das Datum und den Tweet-Text im LogOutput an Anwendungsentwicklung mit Google App Scripts52 01.04.2016
  • 53. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Regelmäßige Tasks registrieren Eine Methode, die regelmässig ausgeführt werden kann, wird über den Taskmanager registriert. Ressources -> Current Project‘s Triggers Im folgenden wird die Methode „readTweets()“ zur stündlichen Ausführung registriert. Anwendungsentwicklung mit Google Apps Script53 01.04.2016
  • 54. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Google Sites : Komponenten einfügen Freigegeben Komponenten und Web Apps können in Google Sites eingebunden werden. Erstelle eine neue Seite in Google Sites https://www.google.com/sites/overview.html Einbinden von Sheets Einfügen -> Drive -> Tabelle Wähle das zuvor publizierte Sheet aus Anwendungsentwicklung mit Google Apps Script54 01.04.2016
  • 55. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Google Sites : Komponenten einfügen (2) Einbinden von Webapps Einfügen -> Apps Script Web App muss zuvor publiziert worden sein Entsprechende Art der eingebundene Komponente wird von Google Sites angezeigt, Größe kann angepasst werden Anwendungsentwicklung mit Google Apps Script55 01.04.2016
  • 56. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Zusammenfassung Google Apps Script erlaubt die umfangreiche Automatisierung zwischen bestehenden Cloudanwendungen von Google wie Mail, Sheets und Drive. Zur Erstellung der Anwendungen müssen keine weiteren Dienste, Entwicklungsumgebungen oder Systeme erstellt werden. Die vollständige Entwicklung ist web / cloudbasiert. Die gesamte Implementierung geschieht mittels JAVAScript. Weiterhin ist es möglich, umfangreiche Webanwendungen zu erstellen, welche auf der leistungsfähigen Serverumgebung von Google laufen. Auch hierzu müssen keine weiteren Komponenten wie Webserver, Datenbanken oder Applikationserver installiert werden. Da man auf externe Dienste zugreifen kann, hat man weitreichende Erweiterungsmöglichkeiten, die über das Leistungsangebot von Google hinausgehen. Anwendungsentwicklung mit Google Apps Script56 01.04.2016
  • 57. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 AUFGABEN FÜR PRAKTIKUM Google Apps Script Anwendungsentwicklung mit Google Apps Script57 01.04.2016
  • 58. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Praktikum: Anwendung von Google Apps Script Ziel des Praktikums ist es, die grundlegenden Möglichkeiten von Google Apps Script zu lernen und zu beherrschen. Exemplarisch soll daher eine Google Site erstellt werden, welche ein Set von zu erstellenden Komponenten anzeigt und dabei auf Google Dienste wie auch externe Dienste zurückgreift. Die entsprechenden Komponenten sind zu implementieren innerhalb eines eigenen Google Accounts. Ergebnis der Praktikumsarbeit soll die URL der Google Site sein, welche alle Komponenten integriert. Diese ist an Dozent nach Fertigstellung zu übermitteln. Anwendungsentwicklung mit Google Apps Script58 01.04.2016
  • 59. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Aufgabe 1: Accounts erstellen Falls noch nicht vorhanden, erstellen Sie bitte einen Google Account. https://myaccount.google.com/ Im Email Eingang sollten mindestens 10 Emails in der Inbox sein. https://mail.google.com Unter YouTube sollten mindestens 10 Filme gestartet worden sein https://www.youtube.com/feed/history Erstellen Sie bitte einen kostenlosen Account bei http://openweathermap.org/api . Notieren Sie bitte den Api Key Erstellen Sie eine Seite unter Google Sites. Merken Sie sich bitte die URL http://sites.google.com/ Anwendungsentwicklung mit Google Apps Script59 01.04.2016
  • 60. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Aufgabe 2: Datenhaltung einrichten Datenhaltung Erstellen Sie bitte in Google Drive einen neuen Ordner „Praktikum“. Erstellen Sie ein neues Sheet „PraktikumSheet“. Notieren Sie sich die ID des Sheets Erstellen Sie bitte weitere Sheets mit jeweils einer Tabellen gleichen Namens - Sheet Emails: Spalten SenderEmail, Subject, Datum - Sheet EmailStatistik: Zellen EmailsTotal, EmailsGestern, VerschiedeneAbsender - Sheet YouTube: Spalten FilmTitel, Datum - Sheet Wetterdaten: Zellen Temperatur, Sonnenaufgang, Sonnenuntergang, Datum, Windstärke, Windrichtung Anwendungsentwicklung mit Google Apps Script60 01.04.2016
  • 61. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Aufgabe 2: Abbildung der Tabellen Anwendungsentwicklung mit Google Apps Script61 01.04.2016
  • 62. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Aufgabe 3: Komponenten in Google Sites einbinden Publizieren Sie die vier Blätter der Sheets. Binden Sie diese in Google Sites ein Anwendungsentwicklung mit Google Apps Script62 01.04.2016
  • 63. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Aufgabe 4: Entwicklungsumgebung einrichten Erstellen Sie im Sheet Praktikum ein neues Google Apps Projekt. Das Projekt soll den Namen „Dashboard“ bekommen. Erstellen Sie im Projekt „Dashboard“ die folgenden Skriptdateien - emails.gs - emailsStatistik.gs - youtube.gs - wetterdaten.gs - jsonweb.gs Anwendungsentwicklung mit Google Apps Script63 01.04.2016
  • 64. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Aufgabe 5: Auslesen von Emails Innerhalb dieser Aufgabe wird die Bibliothek GmailApp verwendet. Verwenden Sie das Sheet emails.gs. Erstellen Sie eine Funktion readEmails, welche die Emails der Gmail Inbox lesen kann. Es sollen jeweils die maximal 30 neuesten Emails geladen werden. Für jede Email soll geprüft werden, ob diese bereits in der Tabelle „Emails“ als Eintrag gespeichert ist. Key dabei ist Absender|Betreff. Falls Eintrag noch nicht vorhanden ist, soll eine neue Zeile in Tabelle „Emails“ eingetragen werden, welche als Spalten die AbsenderEmail, Betreff und das Eingangsdatum erhalten. Die Funktion readEmails soll alle 60 Minuten automatisch über den Taskmanager ausgeführt werden. Anwendungsentwicklung mit Google Apps Script64 01.04.2016
  • 65. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Aufgabe 6: Erstellen von Email Statistiken Innerhalb dieser Aufgabe werden Statistiken zu den erhaltenen Emails erstellt. Verwenden Sie das File emailStatistics.gs. Erstellen Sie eine Funktion createEmaiStatistics(), welche aus der Tabelle Emails die erhaltenen Emails liest. Folgende Statistikwerte sollen ermittelt werden - Emails Total: die Anzahl der insgesamt erhaltenen Emails - Emails Gestern: die Anzahl der Emails, die am gestrigen Tag erhalten wurden - Verschiedene Absender: die Anzahl der bezüglich Ihrer Absenderemail verschiedenen Sender Die erhaltenen Werte sind in die entsprechenden Felder der Tabelle EmailStatistics zu schreiben Registrieren Sie die Funktion createEmailStatistics() als Task, der Nachts zwischen 0 und 1 Uhr läuft Anwendungsentwicklung mit Google Apps Script65 01.04.2016
  • 66. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Aufgabe 7: Reagieren auf Events Innerhalb dieser Aufgabe wird auf ein Event reagiert. Der Event ist eine eingegehende Email mit dem Betreff „EmailStatistic“. Erstellen Sie eine Funktion readStatisticMailRequest() im File emailStatistics.gs, welche nach Emails im Posteingang sucht, die den Betreff „EmailStatistic“ haben. Wird eine solche Mail gefunden, soll die Funktion wie folgt handeln: - Lese die Werte EmailsTotal, EmailsGestern und VerschiedeneAbsender aus dem Sheet EmailStatistics - Sende dem Sender der Email eine Antwort-Email mit dem Inhalt „EmailsTotal: <EmailsTotal>, Emails Gestern: <EmailsGestern>, Verschiedene Absender: <VerschiedeneAbsender>. - Lösche die empfange Email aus der InBox (da sonst der Dienst immer aktiviert wird!). - Die Funktion readStatisticMailRequest() soll alle 10 Minuten vom Taskmanager gestartet werden. Anwendungsentwicklung mit Google Apps Script66 01.04.2016
  • 67. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Aufgabe 8: Verbindung zu Google Services Ziel dieser Aufgabe ist das Abfragen von Daten aus Google Diensten. Ermitteln Sie die Bibliothek, die zur Abfrage von Daten aus YouTube geeignet ist und binden diese ein. Erstellen Sie eine Funktion readLatestMovies(), welche die in YouTube zuletzt gesehenen Videos abruft. Jedes Video, welches noch nicht im Sheet YouTube gespeichert ist, soll eingetragen werden als „Filmtitel“ und „Datum gesehen“. Die Funktion readLatestMovies() soll stündlich vom Taskmanager gestartet werden. Anwendungsentwicklung mit Google Apps Script67 01.04.2016
  • 68. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Aufgabe 9: Verbindung zu externen Diensten Ziel dieser Aufgabe ist das Abfragen von Daten aus externen Diensten. Hierbei werden OAuth Methoden verwendet. Lesen Sie die API von http://openweathermap.org/api. Ermitteln Sie, wie ein JSON Request generiert wird, um das Wetter für Pforzheim anzuzeigen. Aus der API sind die Werte Temperatur, Sonnenaufgang, Sonnenuntergang, Datum (aktueller Tag), Windstärke, Windrichtung auszulesen. Die erhaltenen Werte sollen im Sheet Wetterdaten ersetzen. Erstellen sie im File wetterdaten.gs eine entsprechende Funktion readWeather(). Diese Methode soll einmal täglich zwischen 8 und 9 Uhr ausgeführt werden. Anwendungsentwicklung mit Google Apps Script68 01.04.2016
  • 69. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Aufgabe 10: JSON basierte Webanwendung Ziel dieser Aufgabe ist die Erstellung einer JSON basierten Webanwendung. Sie soll auf Anfrage Daten mit JSON serialisiert an den Client zurück geben. Somit können externe Anwendungen von den Daten in der Anwendung profitieren. Erstellen Sie eine Webanwendung mit GET Request Unterstützung in der Datei jsonweb.gs. Auf einen GET Request soll der Client als JSON Request folgendes Objekt erhalten Wetterdaten city: Pforzheim temperatur: <temperatur> . Der Wert für Temperatur ist aus Sheet Wetterdaten auszulesen. Binden Sie diese Webanwendung in die Google Sites Anwendung ein. Anwendungsentwicklung mit Google Apps Script69 01.04.2016
  • 70. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Aufgabe 11: Apache Wicket Tutorial Mit Google Apps Script wurde der komplett cloudbasierte Weg gezeigt, um Anwendungen innerhalb einer Cloudinfrastruktur zu installieren. Den „traditionellen“ Weg zeigt die Vorlesung nächste Woche „Wicket Tutorial“. Hierbei wird eine Bildsuchmaschine mit Hilfe des Webframeworks Apache Wicket erstellt. Als Datenhaltung wird mittels MySQL eine SQL basierte Datenbank verwendet. Innerhalb dieser Aufgabe sollen Sie die im Tutorial gezeigte, komplett lauffähige Anwendung auf Ihrem Rechner (oder auf von Uni gestellter Ressource) installieren und ausführen. Anwendungsentwicklung mit Google Apps Script70 01.04.2016
  • 71. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Punkteverteilung Aufgabe Punkte 01. Accounts erstellen 1 02. Datenhaltung einrichten 2 03. Komponenten in Google Sites einbinden 3 04. Entwicklungsumgebung einrichten 2 05. Auslesen von Emails 3 06. Erstellen von Email Statistiken 4 07. Reagieren auf Events 3 08. Verbindung zu Google Services 6 09. Verbindung zu externen Diensten 5 10. JSON basierte Webanwendung 6 11. Apache Wicket Tutorial 5 Total maximal 40 Anwendungsentwicklung mit Google Apps Script71 01.04.2016
  • 72. Advanced Software Engineering Hochschule Pforzheim - Sommersemester 2016 Kontakt Ich stehe Ihnen gerne bei Fragen zu den einzelnen Aufgaben zur Verfügung. Andreas Walter Email: mail@awalter.info Anwendungsentwicklung mit Google Apps Script72 01.04.2016