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

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
Alvaro ACtraductores
 
Costa rica-entre-1873-y-1874
Costa rica-entre-1873-y-1874Costa rica-entre-1873-y-1874
Costa rica-entre-1873-y-1874
Rigoberto Vargas
 
C10480162
C10480162C10480162
C10480162
liverobot
 
VIVEK KU PATEL
VIVEK KU PATELVIVEK KU PATEL
VIVEK KU PATEL
vivek patel
 
Alexei Papin
Alexei Papin  Alexei Papin
Alexei Papin
prosvsports
 
DEFINICION DE COMERCIO ELECTRONICO
DEFINICION DE COMERCIO ELECTRONICODEFINICION DE COMERCIO ELECTRONICO
DEFINICION DE COMERCIO ELECTRONICO
genni032
 

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 api
e-dialog GmbH
 
Ueberlegungen Projektmanagement Web Applications
Ueberlegungen Projektmanagement Web ApplicationsUeberlegungen Projektmanagement Web Applications
Ueberlegungen Projektmanagement Web Applications
GĂŒnther Haslbeck
 
e-projekt 2.0
e-projekt 2.0e-projekt 2.0
e-projekt 2.0
bahaa318i
 

Ä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