SlideShare une entreprise Scribd logo
1  sur  60
Télécharger pour lire hors ligne
Alexa Skills für Amazon EchoAlexa Skills für Amazon Echo
mit PHP entwickelnmit PHP entwickeln
Ralf EggertRalf Eggert
CEO Travello GmbH, ZF Trainer, Autor, Coach,CEO Travello GmbH, ZF Trainer, Autor, Coach,
PHP Entwickler & Alexa Skill EntwicklerPHP Entwickler & Alexa Skill Entwickler
Drei Fragen!Drei Fragen!
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 44 vonvon 6060
AgendaAgenda
Amazon Alexa Grundlagen 
Skill vorbereiten 
Warum PHP?
Skill Code implementieren
Meine Erkenntnisse 
Amazon Alexa GrundlagenAmazon Alexa Grundlagen
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 66 vonvon 6060
Wie funktioniert ein Alexa Request?Wie funktioniert ein Alexa Request?
AWS
Lambda
Function
Alexa Voice Service


IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 77 vonvon 6060
Wie funktioniert ein Alexa Request?Wie funktioniert ein Alexa Request?
AWS
Lambda
Function
Alexa Voice Service

Voice Command

IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 88 vonvon 6060
Wie funktioniert ein Alexa Request?Wie funktioniert ein Alexa Request?
AWS
Lambda
Function
Alexa Voice Service

Voice Command
Voice Request

IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 99 vonvon 6060
Wie funktioniert ein Alexa Request?Wie funktioniert ein Alexa Request?
AWS
Lambda
Function
Alexa Voice Service

Voice Command
Voice Request
JSON Request

IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 1010 vonvon 6060
Wie funktioniert ein Alexa Request?Wie funktioniert ein Alexa Request?
AWS
Lambda
Function
Alexa Voice Service

Voice Command
Voice Request
JSON Request
JSON Response
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 1111 vonvon 6060
Wie funktioniert ein Alexa Request?Wie funktioniert ein Alexa Request?
AWS
Lambda
Function
Alexa Voice Service
Text Response

Voice Command
Voice Request
JSON Request
JSON Response
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 1212 vonvon 6060
Wie funktioniert ein Alexa Request?Wie funktioniert ein Alexa Request?
AWS
Lambda
Function
Alexa Voice Service
Text Response

Voice Response
Card Response
Voice Command
Voice Request
JSON Request
JSON Response
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 1313 vonvon 6060
Alternativer RequestAlternativer Request
HTTPS
Endpoint
Server
Alexa Voice Service
Text Response

Voice Response
Card Response
Voice Command
Voice Request
JSON Request
JSON Response
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 1414 vonvon 6060
Alexa Voice Service (AVS)Alexa Voice Service (AVS)
Alexa Voice Service
Automatic
Speech
Recognition
(ASR)
Natural
Language
Understanding
(NLU)
Text
To
Speech
(TTS)
Voice
Command
Mapping
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 1515 vonvon 6060
Alexa Skills Kit (ASK)Alexa Skills Kit (ASK)
Alexa Skills Kit
Interaction-Model /
Skill Builder
Configuration
Publishing /
Privacy
Test
Service Simulator
Beta Test
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 1616 vonvon 6060
ASK ÜberblickASK Überblick
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 1717 vonvon 6060
Alexa Skill BuilderAlexa Skill Builder
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 1818 vonvon 6060
AWS Lambda FunctionsAWS Lambda Functions
Warum PHP?Warum PHP?
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 2020 vonvon 6060
Mögliche LösungsansätzeMögliche Lösungsansätze
PHP für AWS kompilieren
Unterstützte Runtime Engine für AWS einsetzen
Eigenen HTTPS Endpoint Server einsetzen
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 2121 vonvon 6060
Unterstützte Runtime Engine?Unterstützte Runtime Engine?
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 2222 vonvon 6060
PHP für AWS Lambda kompilieren?PHP für AWS Lambda kompilieren?
https://goo.gl/N9VVvb
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 2323 vonvon 6060
Eigener HTTPS Endpoint Server?Eigener HTTPS Endpoint Server?
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 2424 vonvon 6060
Lösung gefundenLösung gefunden
PHP für AWS kompilieren
Unterstützte Runtime Engine für AWS einsetzen
Eigenen HTTPS Endpoint Server einsetzen
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 2525 vonvon 6060
Nachteile eigener HTTPS EndpointNachteile eigener HTTPS Endpoint
Einige Tools arbeiten nur mit Lambda (API, CLI)
Eigene Library für Alexa aufbauen
Server Administration
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 2626 vonvon 6060
Vorteile eigener HTTPS EndpointVorteile eigener HTTPS Endpoint
Jede gewünschte Software einsetzbar
Vollständige Kontrolle über die Serverumgebung
Keine Datenschutzbedenken (weiche Bedenken)
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 2727 vonvon 6060
Open-source PHP LibraryOpen-source PHP Library
https://github.com/travello-gmbh/
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 2828 vonvon 6060
Mein aktueller Tech StackMein aktueller Tech Stack
Skill vorbereitenSkill vorbereiten
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 3030 vonvon 6060
DemoDemo
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 3131 vonvon 6060
Beispieldialoge erstellenBeispieldialoge erstellen
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 3232 vonvon 6060
Beispieldialog IBeispieldialog I
Alexa, starte Mein Zoo! 
Willkommen in deinem Zoo.
Nenne mir ein Tier aus meinem Zoo! 
Ein Elefant lebt in deinem Zoo.
Danke Alexa. 
Bitte!
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 3333 vonvon 6060
Beispieldialog IIBeispieldialog II
Alexa, starte Mein Zoo! 
Willkommen in deinem Zoo.
Wie viele Tiere leben in meinem Zoo? 
In deinem Zoo leben 42 Tiere!
Danke Alexa. 
Bitte!
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 3434 vonvon 6060
Flussdiagramme erstellenFlussdiagramme erstellen
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 3535 vonvon 6060
FlussdiagrammFlussdiagramm
Willkommen in
deinem Zoo.
Starte Mein Zoo
Nenne mir ein Tier
aus meinem Zoo!
In deinem Zoo
leben 42 Tiere!
»nenne« »anzahl«
»nenne« »anzahl«
Bitte!
»danke« »danke«
»danke«
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 3636 vonvon 6060
Alexa Skills Kit konfigurierenAlexa Skills Kit konfigurieren
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 3737 vonvon 6060
Eigene Slot Types erstellenEigene Slot Types erstellen
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 3838 vonvon 6060
Eigene Intents erstellenEigene Intents erstellen
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 3939 vonvon 6060
HTTPS Endpoint konfigurierenHTTPS Endpoint konfigurieren
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 4040 vonvon 6060
SSL Zertifikat konfigurierenSSL Zertifikat konfigurieren
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 4141 vonvon 6060
HTTPS Endpoint testenHTTPS Endpoint testen
Skill Code implementierenSkill Code implementieren
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 4343 vonvon 6060
Beispielanwendung installierenBeispielanwendung installieren
$ git clone https://github.com/travello-gmbh/example-zoo-skill
$ cd example-zoo-skill
$ composer install
$ sudo chmod -R 777 data/cache/
// Virtual Host für http://example-zoo-skill einrichte
// mit dem Pfad example-zoo-skill/html/ als Doc Root
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 4444 vonvon 6060
Beispielanwendung testenBeispielanwendung testen
/data/postman/collection.json
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 4545 vonvon 6060
Textdatei aktualisierenTextdatei aktualisieren
return [
'launchTitle' => 'Willkommen',
'launchMessage' => 'Willkommen in deinem Zoo',
'repromptMessage' => 'Noch ein Tier oder abbrechen?',
'helpTitle' => 'Hilfe',
'helpMessage' => 'Frage, welches Tier in deinem Zoo ' .
'ist und wie viele Tiere es sind.',
'cancelTitle' => 'Danke',
'cancelMessage' => 'Danke und bis bald!',
'stopTitle' => 'Danke',
'stopMessage' => 'Danke und bis bald!',
'animalTitle' => 'Ein Tier',
'animalMessage' => '%1$s lebt in deinem Zoo!',
'countTitle' => 'Tierzählung',
'countMessage' => 'In deinem Zoo leben %1$s Tiere!',
];
/data/texts/zoo.common.texts.de-DE.php
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 4646 vonvon 6060
Intent Klasse erstellenIntent Klasse erstellen
<?php
namespace ZooIntent;
use TravelloAlexaLibraryIntentAbstractIntent;
use TravelloAlexaLibraryResponseAlexaResponse;
use TravelloAlexaLibraryResponseCardStandard;
use TravelloAlexaLibraryResponseOutputSpeechSSML;
class AnimalIntent extends AbstractIntent
{
const NAME = 'AnimalIntent';
public function handle(string $smallImageUrl, string $largeImageUrl): AlexaResponse
{
$zooTitle = $this->getTextHelper()->getAnimalTitle();
$zooMessage = $this->getTextHelper()->getAnimalMessage('Ein Elefant');
$this->getAlexaResponse()->setOutputSpeech(new SSML($zooMessage));
$this->getAlexaResponse()->setCard(
new Standard($zooTitle, $zooMessage, $smallImageUrl, $largeImageUrl)
);
return $this->getAlexaResponse();
}
} /module/Zoo/src/Intent/AnimalIntent.php
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 4747 vonvon 6060
Skill Configuration ISkill Configuration I
<?php
namespace Zoo;
use TravelloAlexaLibraryApplicationAlexaApplication;
use TravelloAlexaLibraryTextHelperTextHelper;
class ConfigProvider
{
const NAME = 'zoo-skill';
public function getSkills(): array
{
return [
self::NAME => [
'applicationId' => 'amzn1.ask.skill.place-your-skill-id-here',
'applicationClass' => AlexaApplication::class,
'textHelperClass' => TextHelper::class,
'sessionDefaults' => [],
'smallImageUrl' => 'https://www.travello.audio/cards/zoo-480x480.png',
'largeImageUrl' => 'https://www.travello.audio/cards/zoo-800x800.png',
/** ... */
]
];
}
}
/module/Zoo/src/ConfigProvider.php
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 4848 vonvon 6060
Skill Configuration IISkill Configuration II
namespace Zoo;
use TravelloAlexaZfIntentAbstractIntentFactory;
use ZooIntentAnimalIntent;
class ConfigProvider
{
public function getSkills(): array
{
return [
self::NAME => [
/** ... */
'intents' => [
'aliases' => [ AnimalIntent::NAME => AnimalIntent::class ],
'factories' => [ AnimalIntent::class => AbstractIntentFactory::class ],
],
'texts' => [
'de-DE' => include PROJECT_ROOT . '/data/texts/zoo.common.texts.de-DE.php',
'en-US' => include PROJECT_ROOT . '/data/texts/zoo.common.texts.en-US.php',
],
]
];
}
} /module/Zoo/src/ConfigProvider.php
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 4949 vonvon 6060
Zoo Anwendung testenZoo Anwendung testen
/data/postman/collection.json
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 5050 vonvon 6060
Weitere FeaturesWeitere Features
Session Attribute step2→
Slot-Type Tierarten step4→
https://github.com/travello-gmbh/example-zoo-skill
Zweiter Intent step3→
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 5151 vonvon 6060
In Kürze in der Library 3.0In Kürze in der Library 3.0
https://github.com/travello-gmbh/amazon-alexa-skill-library
Codegenerierung für Skills
Codegenerierung für Intents
Meine ErkenntnisseMeine Erkenntnisse
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 5353 vonvon 6060
Früher ErfolgFrüher Erfolg
6 Monate Top 10 Aktivierte Skills
75.000 Kunden bisher
64 Kundenbewertungen bisher
2.500.000 »Utterances« bisher
Meist genutzter Skill (DE) in 05/2017
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 5454 vonvon 6060
Größte HerausforderungenGrößte Herausforderungen
Slot Type für deutsche Vorname
Signaturvalidierung
Kategorie Slot Type Intents→
Chance ersten Skill abzuschießen
Zweiter Server für Tests
Komplexeres VUI / CUI
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 5555 vonvon 6060
ZertifizierungsprozessZertifizierungsprozess
7 Tage für Feedback (02/2017)
Signaturvalidierung Problem
16 Stunden bis Live (07/2017)
Invocation Name Problem
0 Probleme
»Abbrechen« Intent Problem
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 5656 vonvon 6060
Zahlen zur EntwicklungZahlen zur Entwicklung
10 Arbeitstage zusammen
80% für Infrastruktur Code
15 Arbeitstage zusammen
90% für Skill Code
20% für Skill Code
10% für Infrastruktur Code
IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 5757 vonvon 6060
Wichtigste ErkenntnisseWichtigste Erkenntnisse
Mit einfachem Skill beginnen
Gründlich testen
Solide Code Basis schreiben
Mehr als einen Skill erstellen
Durchdachte VUI erstellen
Slot-Types nicht blind vertrauen
Spaß haben!
Letzte NachrichtenLetzte Nachrichten
Fragen?Fragen?
Danke!Danke!
Mail: ralf@travello.audioMail: ralf@travello.audio
Web: www.travello.audioWeb: www.travello.audio

Contenu connexe

En vedette

Android Based Home Automation Control
Android Based Home Automation ControlAndroid Based Home Automation Control
Android Based Home Automation ControlVivek Porwal
 
Webinar | Wi-Fi for IoT: How Home Networking is Changing the Smart Home
Webinar | Wi-Fi for IoT: How Home Networking is Changing the Smart HomeWebinar | Wi-Fi for IoT: How Home Networking is Changing the Smart Home
Webinar | Wi-Fi for IoT: How Home Networking is Changing the Smart HomeCirrent
 
A new experience model for the smart home and consumer IoT [Endeavour Partners]
A new experience model for the smart home and consumer IoT [Endeavour Partners]A new experience model for the smart home and consumer IoT [Endeavour Partners]
A new experience model for the smart home and consumer IoT [Endeavour Partners]Nalani Genser
 
Thesis - Voice Control Home Automation
Thesis - Voice Control Home AutomationThesis - Voice Control Home Automation
Thesis - Voice Control Home AutomationAbhishek Neb
 
IoT BASED SMART HOME USING ARDUINO
IoT BASED SMART HOME USING ARDUINOIoT BASED SMART HOME USING ARDUINO
IoT BASED SMART HOME USING ARDUINOAYSHA S KABEER
 
PROTOTYPE SMART HOME DENGAN KONSEP INTERNET OF THING (IOT) MENGGUNAKAN ARDUIN...
PROTOTYPE SMART HOME DENGAN KONSEP INTERNET OF THING (IOT) MENGGUNAKAN ARDUIN...PROTOTYPE SMART HOME DENGAN KONSEP INTERNET OF THING (IOT) MENGGUNAKAN ARDUIN...
PROTOTYPE SMART HOME DENGAN KONSEP INTERNET OF THING (IOT) MENGGUNAKAN ARDUIN...Uofa_Unsada
 
Friendly Technologies - TR-069, IoT Management, Smart Home Service Delivery
Friendly Technologies - TR-069, IoT Management, Smart Home Service DeliveryFriendly Technologies - TR-069, IoT Management, Smart Home Service Delivery
Friendly Technologies - TR-069, IoT Management, Smart Home Service DeliveryFriendly Technologies
 
My Final Year Project - Individual Control Home Automation System
My Final Year Project - Individual Control Home Automation SystemMy Final Year Project - Individual Control Home Automation System
My Final Year Project - Individual Control Home Automation SystemMichael Olafusi
 
Use voice recognition with Alexa to control your home [JavaOne]
Use voice recognition with Alexa to control your home [JavaOne]Use voice recognition with Alexa to control your home [JavaOne]
Use voice recognition with Alexa to control your home [JavaOne]Johan Janssen
 
Controlling Home Appliances Using Voice
 Controlling Home Appliances Using Voice Controlling Home Appliances Using Voice
Controlling Home Appliances Using VoiceEdgefxkits & Solutions
 
Voice Control Home Automation
Voice Control Home AutomationVoice Control Home Automation
Voice Control Home AutomationAbhishek Neb
 
Iot for smart city
Iot for smart cityIot for smart city
Iot for smart citysanalkumar k
 
Introduction to IOT & Smart City
Introduction to IOT & Smart CityIntroduction to IOT & Smart City
Introduction to IOT & Smart CityDr. Mazlan Abbas
 
PPT on Microsoft Corporation
PPT on Microsoft CorporationPPT on Microsoft Corporation
PPT on Microsoft CorporationVijaykumar Nishad
 

En vedette (17)

Android Based Home Automation Control
Android Based Home Automation ControlAndroid Based Home Automation Control
Android Based Home Automation Control
 
Webinar | Wi-Fi for IoT: How Home Networking is Changing the Smart Home
Webinar | Wi-Fi for IoT: How Home Networking is Changing the Smart HomeWebinar | Wi-Fi for IoT: How Home Networking is Changing the Smart Home
Webinar | Wi-Fi for IoT: How Home Networking is Changing the Smart Home
 
A new experience model for the smart home and consumer IoT [Endeavour Partners]
A new experience model for the smart home and consumer IoT [Endeavour Partners]A new experience model for the smart home and consumer IoT [Endeavour Partners]
A new experience model for the smart home and consumer IoT [Endeavour Partners]
 
Thesis - Voice Control Home Automation
Thesis - Voice Control Home AutomationThesis - Voice Control Home Automation
Thesis - Voice Control Home Automation
 
IoT BASED SMART HOME USING ARDUINO
IoT BASED SMART HOME USING ARDUINOIoT BASED SMART HOME USING ARDUINO
IoT BASED SMART HOME USING ARDUINO
 
PROTOTYPE SMART HOME DENGAN KONSEP INTERNET OF THING (IOT) MENGGUNAKAN ARDUIN...
PROTOTYPE SMART HOME DENGAN KONSEP INTERNET OF THING (IOT) MENGGUNAKAN ARDUIN...PROTOTYPE SMART HOME DENGAN KONSEP INTERNET OF THING (IOT) MENGGUNAKAN ARDUIN...
PROTOTYPE SMART HOME DENGAN KONSEP INTERNET OF THING (IOT) MENGGUNAKAN ARDUIN...
 
Friendly Technologies - TR-069, IoT Management, Smart Home Service Delivery
Friendly Technologies - TR-069, IoT Management, Smart Home Service DeliveryFriendly Technologies - TR-069, IoT Management, Smart Home Service Delivery
Friendly Technologies - TR-069, IoT Management, Smart Home Service Delivery
 
My Final Year Project - Individual Control Home Automation System
My Final Year Project - Individual Control Home Automation SystemMy Final Year Project - Individual Control Home Automation System
My Final Year Project - Individual Control Home Automation System
 
IOT for Smart City
IOT for Smart CityIOT for Smart City
IOT for Smart City
 
Use voice recognition with Alexa to control your home [JavaOne]
Use voice recognition with Alexa to control your home [JavaOne]Use voice recognition with Alexa to control your home [JavaOne]
Use voice recognition with Alexa to control your home [JavaOne]
 
Amazon Alexa Workshop
Amazon Alexa WorkshopAmazon Alexa Workshop
Amazon Alexa Workshop
 
Controlling Home Appliances Using Voice
 Controlling Home Appliances Using Voice Controlling Home Appliances Using Voice
Controlling Home Appliances Using Voice
 
Voice controlled home appliances
Voice controlled home appliancesVoice controlled home appliances
Voice controlled home appliances
 
Voice Control Home Automation
Voice Control Home AutomationVoice Control Home Automation
Voice Control Home Automation
 
Iot for smart city
Iot for smart cityIot for smart city
Iot for smart city
 
Introduction to IOT & Smart City
Introduction to IOT & Smart CityIntroduction to IOT & Smart City
Introduction to IOT & Smart City
 
PPT on Microsoft Corporation
PPT on Microsoft CorporationPPT on Microsoft Corporation
PPT on Microsoft Corporation
 

Similaire à IPC 2017 - Alexa Skills für Amazon Echo mit PHP entwickeln

kundenorientierte vertikalisierung
kundenorientierte vertikalisierungkundenorientierte vertikalisierung
kundenorientierte vertikalisierungJens Himmelreich
 
TechEvent 2019: Serverless - Ist das was für mich?; Thorsten Maier - Trivadis
TechEvent 2019: Serverless - Ist das was für mich?; Thorsten Maier - TrivadisTechEvent 2019: Serverless - Ist das was für mich?; Thorsten Maier - Trivadis
TechEvent 2019: Serverless - Ist das was für mich?; Thorsten Maier - TrivadisTrivadis
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreGregor Biswanger
 
Magdeburger Developer Days 2018 - Warum warten auf die IDE?
Magdeburger Developer Days 2018 - Warum warten auf die IDE?Magdeburger Developer Days 2018 - Warum warten auf die IDE?
Magdeburger Developer Days 2018 - Warum warten auf die IDE?Robin Sedlaczek
 
9 Tipps für die Modernisierung von PHP-Anwendungen
9 Tipps für die Modernisierung von PHP-Anwendungen9 Tipps für die Modernisierung von PHP-Anwendungen
9 Tipps für die Modernisierung von PHP-AnwendungenRalf Eggert
 
W-Jax 2015: QS-Maßnahmen bei Continuous Delivery
W-Jax 2015: QS-Maßnahmen bei Continuous DeliveryW-Jax 2015: QS-Maßnahmen bei Continuous Delivery
W-Jax 2015: QS-Maßnahmen bei Continuous DeliveryStephan Kaps
 
IPC2017SE - Zend\Expressive Workshop
IPC2017SE - Zend\Expressive WorkshopIPC2017SE - Zend\Expressive Workshop
IPC2017SE - Zend\Expressive WorkshopRalf Eggert
 
ADC Core 2017 - Warum warten auf die IDE?
ADC Core 2017 - Warum warten auf die IDE?ADC Core 2017 - Warum warten auf die IDE?
ADC Core 2017 - Warum warten auf die IDE?Robin Sedlaczek
 
digitalSTROM Developer Day 2011: digitalSTROM-Server-Apps
digitalSTROM Developer Day 2011: digitalSTROM-Server-AppsdigitalSTROM Developer Day 2011: digitalSTROM-Server-Apps
digitalSTROM Developer Day 2011: digitalSTROM-Server-AppsdigitalSTROM.org
 
BASTA! Spring 2017 - C# Script in Action
BASTA! Spring 2017 - C# Script in ActionBASTA! Spring 2017 - C# Script in Action
BASTA! Spring 2017 - C# Script in ActionRobin Sedlaczek
 
#ADC 2016 - C# Script in Action
#ADC 2016 - C# Script in Action#ADC 2016 - C# Script in Action
#ADC 2016 - C# Script in ActionRobin Sedlaczek
 
Dateien per Drag & Drop in APEX Applikationen ablegen.
Dateien per Drag & Drop in APEX Applikationen ablegen.Dateien per Drag & Drop in APEX Applikationen ablegen.
Dateien per Drag & Drop in APEX Applikationen ablegen.MT AG
 
Jetlag - Oracle Jet und APEX
Jetlag - Oracle Jet und APEXJetlag - Oracle Jet und APEX
Jetlag - Oracle Jet und APEXOliver Lemm
 
Wieder verschätzt?
Wieder verschätzt?Wieder verschätzt?
Wieder verschätzt?Oliver Lemm
 
Hybride Schönheit - Das Java/JavaScript Webframeworks Echo
Hybride Schönheit - Das Java/JavaScript Webframeworks EchoHybride Schönheit - Das Java/JavaScript Webframeworks Echo
Hybride Schönheit - Das Java/JavaScript Webframeworks EchoBenjamin Schmid
 
Elastic Compute Cloud: Darf es noch ein Server mehr sein?
Elastic Compute Cloud: Darf es noch ein Server mehr sein?Elastic Compute Cloud: Darf es noch ein Server mehr sein?
Elastic Compute Cloud: Darf es noch ein Server mehr sein?Lothar Wieske
 
TYPO3 QA - The current state
TYPO3 QA - The current stateTYPO3 QA - The current state
TYPO3 QA - The current stateAndy Grunwald
 
BASTA! 2017 Jubiläumskonferenz - Warum warten auf die IDE!?
BASTA! 2017 Jubiläumskonferenz - Warum warten auf die IDE!?BASTA! 2017 Jubiläumskonferenz - Warum warten auf die IDE!?
BASTA! 2017 Jubiläumskonferenz - Warum warten auf die IDE!?Robin Sedlaczek
 
REST – Das Ende der Fahnenstange? Ein Blick auf Moderne API-Technologien
REST – Das Ende der Fahnenstange? Ein Blick auf Moderne API-TechnologienREST – Das Ende der Fahnenstange? Ein Blick auf Moderne API-Technologien
REST – Das Ende der Fahnenstange? Ein Blick auf Moderne API-TechnologienQAware GmbH
 
iDocIt - Ein Assistent zur API-Dokumentation
iDocIt - Ein Assistent zur API-DokumentationiDocIt - Ein Assistent zur API-Dokumentation
iDocIt - Ein Assistent zur API-DokumentationJan Christian Krause
 

Similaire à IPC 2017 - Alexa Skills für Amazon Echo mit PHP entwickeln (20)

kundenorientierte vertikalisierung
kundenorientierte vertikalisierungkundenorientierte vertikalisierung
kundenorientierte vertikalisierung
 
TechEvent 2019: Serverless - Ist das was für mich?; Thorsten Maier - Trivadis
TechEvent 2019: Serverless - Ist das was für mich?; Thorsten Maier - TrivadisTechEvent 2019: Serverless - Ist das was für mich?; Thorsten Maier - Trivadis
TechEvent 2019: Serverless - Ist das was für mich?; Thorsten Maier - Trivadis
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
 
Magdeburger Developer Days 2018 - Warum warten auf die IDE?
Magdeburger Developer Days 2018 - Warum warten auf die IDE?Magdeburger Developer Days 2018 - Warum warten auf die IDE?
Magdeburger Developer Days 2018 - Warum warten auf die IDE?
 
9 Tipps für die Modernisierung von PHP-Anwendungen
9 Tipps für die Modernisierung von PHP-Anwendungen9 Tipps für die Modernisierung von PHP-Anwendungen
9 Tipps für die Modernisierung von PHP-Anwendungen
 
W-Jax 2015: QS-Maßnahmen bei Continuous Delivery
W-Jax 2015: QS-Maßnahmen bei Continuous DeliveryW-Jax 2015: QS-Maßnahmen bei Continuous Delivery
W-Jax 2015: QS-Maßnahmen bei Continuous Delivery
 
IPC2017SE - Zend\Expressive Workshop
IPC2017SE - Zend\Expressive WorkshopIPC2017SE - Zend\Expressive Workshop
IPC2017SE - Zend\Expressive Workshop
 
ADC Core 2017 - Warum warten auf die IDE?
ADC Core 2017 - Warum warten auf die IDE?ADC Core 2017 - Warum warten auf die IDE?
ADC Core 2017 - Warum warten auf die IDE?
 
digitalSTROM Developer Day 2011: digitalSTROM-Server-Apps
digitalSTROM Developer Day 2011: digitalSTROM-Server-AppsdigitalSTROM Developer Day 2011: digitalSTROM-Server-Apps
digitalSTROM Developer Day 2011: digitalSTROM-Server-Apps
 
BASTA! Spring 2017 - C# Script in Action
BASTA! Spring 2017 - C# Script in ActionBASTA! Spring 2017 - C# Script in Action
BASTA! Spring 2017 - C# Script in Action
 
#ADC 2016 - C# Script in Action
#ADC 2016 - C# Script in Action#ADC 2016 - C# Script in Action
#ADC 2016 - C# Script in Action
 
Dateien per Drag & Drop in APEX Applikationen ablegen.
Dateien per Drag & Drop in APEX Applikationen ablegen.Dateien per Drag & Drop in APEX Applikationen ablegen.
Dateien per Drag & Drop in APEX Applikationen ablegen.
 
Jetlag - Oracle Jet und APEX
Jetlag - Oracle Jet und APEXJetlag - Oracle Jet und APEX
Jetlag - Oracle Jet und APEX
 
Wieder verschätzt?
Wieder verschätzt?Wieder verschätzt?
Wieder verschätzt?
 
Hybride Schönheit - Das Java/JavaScript Webframeworks Echo
Hybride Schönheit - Das Java/JavaScript Webframeworks EchoHybride Schönheit - Das Java/JavaScript Webframeworks Echo
Hybride Schönheit - Das Java/JavaScript Webframeworks Echo
 
Elastic Compute Cloud: Darf es noch ein Server mehr sein?
Elastic Compute Cloud: Darf es noch ein Server mehr sein?Elastic Compute Cloud: Darf es noch ein Server mehr sein?
Elastic Compute Cloud: Darf es noch ein Server mehr sein?
 
TYPO3 QA - The current state
TYPO3 QA - The current stateTYPO3 QA - The current state
TYPO3 QA - The current state
 
BASTA! 2017 Jubiläumskonferenz - Warum warten auf die IDE!?
BASTA! 2017 Jubiläumskonferenz - Warum warten auf die IDE!?BASTA! 2017 Jubiläumskonferenz - Warum warten auf die IDE!?
BASTA! 2017 Jubiläumskonferenz - Warum warten auf die IDE!?
 
REST – Das Ende der Fahnenstange? Ein Blick auf Moderne API-Technologien
REST – Das Ende der Fahnenstange? Ein Blick auf Moderne API-TechnologienREST – Das Ende der Fahnenstange? Ein Blick auf Moderne API-Technologien
REST – Das Ende der Fahnenstange? Ein Blick auf Moderne API-Technologien
 
iDocIt - Ein Assistent zur API-Dokumentation
iDocIt - Ein Assistent zur API-DokumentationiDocIt - Ein Assistent zur API-Dokumentation
iDocIt - Ein Assistent zur API-Dokumentation
 

Plus de Ralf Eggert

ChatGPT: unser täglich' Bot gib uns heute
ChatGPT: unser täglich' Bot gib uns heuteChatGPT: unser täglich' Bot gib uns heute
ChatGPT: unser täglich' Bot gib uns heuteRalf Eggert
 
Der ultimative PHP Framework Vergleich 2023 Edition
Der ultimative PHP Framework Vergleich 2023 EditionDer ultimative PHP Framework Vergleich 2023 Edition
Der ultimative PHP Framework Vergleich 2023 EditionRalf Eggert
 
PHP Module als Rundum-Sorglos-Pakete entwickeln
PHP Module als Rundum-Sorglos-Pakete entwickelnPHP Module als Rundum-Sorglos-Pakete entwickeln
PHP Module als Rundum-Sorglos-Pakete entwickelnRalf Eggert
 
Alexa, what's next?
Alexa, what's next?Alexa, what's next?
Alexa, what's next?Ralf Eggert
 
Alexa, wohin geht die Reise
Alexa, wohin geht die ReiseAlexa, wohin geht die Reise
Alexa, wohin geht die ReiseRalf Eggert
 
8. Hamburg Voice Interface Meetup
8. Hamburg Voice Interface Meetup8. Hamburg Voice Interface Meetup
8. Hamburg Voice Interface MeetupRalf Eggert
 
Alexa Skill Maintenance
Alexa Skill MaintenanceAlexa Skill Maintenance
Alexa Skill MaintenanceRalf Eggert
 
Vom Zend Framework zu Laminas
Vom Zend Framework zu LaminasVom Zend Framework zu Laminas
Vom Zend Framework zu LaminasRalf Eggert
 
Alexa Skills und PHP? Passt das zusammen?
Alexa Skills und PHP? Passt das zusammen?Alexa Skills und PHP? Passt das zusammen?
Alexa Skills und PHP? Passt das zusammen?Ralf Eggert
 
Mit Jovo von 0 auf 100
Mit Jovo von 0 auf 100Mit Jovo von 0 auf 100
Mit Jovo von 0 auf 100Ralf Eggert
 
Vom Zend Framework zu Laminas
Vom Zend Framework zu LaminasVom Zend Framework zu Laminas
Vom Zend Framework zu LaminasRalf Eggert
 
Alexa for Hospitality
Alexa for HospitalityAlexa for Hospitality
Alexa for HospitalityRalf Eggert
 
Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...
Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...
Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...Ralf Eggert
 
Fortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Fortgeschrittene Techniken für erfolgreiche SprachanwendungenFortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Fortgeschrittene Techniken für erfolgreiche SprachanwendungenRalf Eggert
 
Die sieben Projektphasen für Voice Projekte
Die sieben Projektphasen für Voice ProjekteDie sieben Projektphasen für Voice Projekte
Die sieben Projektphasen für Voice ProjekteRalf Eggert
 
Künstliche Intelligenz – Traum und Wirklichkeit
Künstliche Intelligenz – Traum und WirklichkeitKünstliche Intelligenz – Traum und Wirklichkeit
Künstliche Intelligenz – Traum und WirklichkeitRalf Eggert
 
Multi-Modal Voice Development with Amazon Alexa
Multi-Modal Voice Development with Amazon AlexaMulti-Modal Voice Development with Amazon Alexa
Multi-Modal Voice Development with Amazon AlexaRalf Eggert
 
Mein Haus, mein Auto, mein Backend
Mein Haus, mein Auto, mein BackendMein Haus, mein Auto, mein Backend
Mein Haus, mein Auto, mein BackendRalf Eggert
 
Zend/Expressive 3 – The Next Generation
Zend/Expressive 3 – The Next GenerationZend/Expressive 3 – The Next Generation
Zend/Expressive 3 – The Next GenerationRalf Eggert
 

Plus de Ralf Eggert (20)

ChatGPT: unser täglich' Bot gib uns heute
ChatGPT: unser täglich' Bot gib uns heuteChatGPT: unser täglich' Bot gib uns heute
ChatGPT: unser täglich' Bot gib uns heute
 
Der ultimative PHP Framework Vergleich 2023 Edition
Der ultimative PHP Framework Vergleich 2023 EditionDer ultimative PHP Framework Vergleich 2023 Edition
Der ultimative PHP Framework Vergleich 2023 Edition
 
PHP Module als Rundum-Sorglos-Pakete entwickeln
PHP Module als Rundum-Sorglos-Pakete entwickelnPHP Module als Rundum-Sorglos-Pakete entwickeln
PHP Module als Rundum-Sorglos-Pakete entwickeln
 
Alexa, what's next?
Alexa, what's next?Alexa, what's next?
Alexa, what's next?
 
Alexa, wohin geht die Reise
Alexa, wohin geht die ReiseAlexa, wohin geht die Reise
Alexa, wohin geht die Reise
 
8. Hamburg Voice Interface Meetup
8. Hamburg Voice Interface Meetup8. Hamburg Voice Interface Meetup
8. Hamburg Voice Interface Meetup
 
Welcome Bixby
Welcome BixbyWelcome Bixby
Welcome Bixby
 
Alexa Skill Maintenance
Alexa Skill MaintenanceAlexa Skill Maintenance
Alexa Skill Maintenance
 
Vom Zend Framework zu Laminas
Vom Zend Framework zu LaminasVom Zend Framework zu Laminas
Vom Zend Framework zu Laminas
 
Alexa Skills und PHP? Passt das zusammen?
Alexa Skills und PHP? Passt das zusammen?Alexa Skills und PHP? Passt das zusammen?
Alexa Skills und PHP? Passt das zusammen?
 
Mit Jovo von 0 auf 100
Mit Jovo von 0 auf 100Mit Jovo von 0 auf 100
Mit Jovo von 0 auf 100
 
Vom Zend Framework zu Laminas
Vom Zend Framework zu LaminasVom Zend Framework zu Laminas
Vom Zend Framework zu Laminas
 
Alexa for Hospitality
Alexa for HospitalityAlexa for Hospitality
Alexa for Hospitality
 
Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...
Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...
Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...
 
Fortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Fortgeschrittene Techniken für erfolgreiche SprachanwendungenFortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Fortgeschrittene Techniken für erfolgreiche Sprachanwendungen
 
Die sieben Projektphasen für Voice Projekte
Die sieben Projektphasen für Voice ProjekteDie sieben Projektphasen für Voice Projekte
Die sieben Projektphasen für Voice Projekte
 
Künstliche Intelligenz – Traum und Wirklichkeit
Künstliche Intelligenz – Traum und WirklichkeitKünstliche Intelligenz – Traum und Wirklichkeit
Künstliche Intelligenz – Traum und Wirklichkeit
 
Multi-Modal Voice Development with Amazon Alexa
Multi-Modal Voice Development with Amazon AlexaMulti-Modal Voice Development with Amazon Alexa
Multi-Modal Voice Development with Amazon Alexa
 
Mein Haus, mein Auto, mein Backend
Mein Haus, mein Auto, mein BackendMein Haus, mein Auto, mein Backend
Mein Haus, mein Auto, mein Backend
 
Zend/Expressive 3 – The Next Generation
Zend/Expressive 3 – The Next GenerationZend/Expressive 3 – The Next Generation
Zend/Expressive 3 – The Next Generation
 

IPC 2017 - Alexa Skills für Amazon Echo mit PHP entwickeln

  • 1. Alexa Skills für Amazon EchoAlexa Skills für Amazon Echo mit PHP entwickelnmit PHP entwickeln
  • 2. Ralf EggertRalf Eggert CEO Travello GmbH, ZF Trainer, Autor, Coach,CEO Travello GmbH, ZF Trainer, Autor, Coach, PHP Entwickler & Alexa Skill EntwicklerPHP Entwickler & Alexa Skill Entwickler
  • 4. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 44 vonvon 6060 AgendaAgenda Amazon Alexa Grundlagen  Skill vorbereiten  Warum PHP? Skill Code implementieren Meine Erkenntnisse 
  • 5. Amazon Alexa GrundlagenAmazon Alexa Grundlagen
  • 6. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 66 vonvon 6060 Wie funktioniert ein Alexa Request?Wie funktioniert ein Alexa Request? AWS Lambda Function Alexa Voice Service  
  • 7. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 77 vonvon 6060 Wie funktioniert ein Alexa Request?Wie funktioniert ein Alexa Request? AWS Lambda Function Alexa Voice Service  Voice Command 
  • 8. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 88 vonvon 6060 Wie funktioniert ein Alexa Request?Wie funktioniert ein Alexa Request? AWS Lambda Function Alexa Voice Service  Voice Command Voice Request 
  • 9. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 99 vonvon 6060 Wie funktioniert ein Alexa Request?Wie funktioniert ein Alexa Request? AWS Lambda Function Alexa Voice Service  Voice Command Voice Request JSON Request 
  • 10. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 1010 vonvon 6060 Wie funktioniert ein Alexa Request?Wie funktioniert ein Alexa Request? AWS Lambda Function Alexa Voice Service  Voice Command Voice Request JSON Request JSON Response
  • 11. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 1111 vonvon 6060 Wie funktioniert ein Alexa Request?Wie funktioniert ein Alexa Request? AWS Lambda Function Alexa Voice Service Text Response  Voice Command Voice Request JSON Request JSON Response
  • 12. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 1212 vonvon 6060 Wie funktioniert ein Alexa Request?Wie funktioniert ein Alexa Request? AWS Lambda Function Alexa Voice Service Text Response  Voice Response Card Response Voice Command Voice Request JSON Request JSON Response
  • 13. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 1313 vonvon 6060 Alternativer RequestAlternativer Request HTTPS Endpoint Server Alexa Voice Service Text Response  Voice Response Card Response Voice Command Voice Request JSON Request JSON Response
  • 14. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 1414 vonvon 6060 Alexa Voice Service (AVS)Alexa Voice Service (AVS) Alexa Voice Service Automatic Speech Recognition (ASR) Natural Language Understanding (NLU) Text To Speech (TTS) Voice Command Mapping
  • 15. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 1515 vonvon 6060 Alexa Skills Kit (ASK)Alexa Skills Kit (ASK) Alexa Skills Kit Interaction-Model / Skill Builder Configuration Publishing / Privacy Test Service Simulator Beta Test
  • 16. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 1616 vonvon 6060 ASK ÜberblickASK Überblick
  • 17. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 1717 vonvon 6060 Alexa Skill BuilderAlexa Skill Builder
  • 18. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 1818 vonvon 6060 AWS Lambda FunctionsAWS Lambda Functions
  • 20. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 2020 vonvon 6060 Mögliche LösungsansätzeMögliche Lösungsansätze PHP für AWS kompilieren Unterstützte Runtime Engine für AWS einsetzen Eigenen HTTPS Endpoint Server einsetzen
  • 21. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 2121 vonvon 6060 Unterstützte Runtime Engine?Unterstützte Runtime Engine?
  • 22. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 2222 vonvon 6060 PHP für AWS Lambda kompilieren?PHP für AWS Lambda kompilieren? https://goo.gl/N9VVvb
  • 23. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 2323 vonvon 6060 Eigener HTTPS Endpoint Server?Eigener HTTPS Endpoint Server?
  • 24. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 2424 vonvon 6060 Lösung gefundenLösung gefunden PHP für AWS kompilieren Unterstützte Runtime Engine für AWS einsetzen Eigenen HTTPS Endpoint Server einsetzen
  • 25. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 2525 vonvon 6060 Nachteile eigener HTTPS EndpointNachteile eigener HTTPS Endpoint Einige Tools arbeiten nur mit Lambda (API, CLI) Eigene Library für Alexa aufbauen Server Administration
  • 26. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 2626 vonvon 6060 Vorteile eigener HTTPS EndpointVorteile eigener HTTPS Endpoint Jede gewünschte Software einsetzbar Vollständige Kontrolle über die Serverumgebung Keine Datenschutzbedenken (weiche Bedenken)
  • 27. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 2727 vonvon 6060 Open-source PHP LibraryOpen-source PHP Library https://github.com/travello-gmbh/
  • 28. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 2828 vonvon 6060 Mein aktueller Tech StackMein aktueller Tech Stack
  • 30. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 3030 vonvon 6060 DemoDemo
  • 31. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 3131 vonvon 6060 Beispieldialoge erstellenBeispieldialoge erstellen
  • 32. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 3232 vonvon 6060 Beispieldialog IBeispieldialog I Alexa, starte Mein Zoo!  Willkommen in deinem Zoo. Nenne mir ein Tier aus meinem Zoo!  Ein Elefant lebt in deinem Zoo. Danke Alexa.  Bitte!
  • 33. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 3333 vonvon 6060 Beispieldialog IIBeispieldialog II Alexa, starte Mein Zoo!  Willkommen in deinem Zoo. Wie viele Tiere leben in meinem Zoo?  In deinem Zoo leben 42 Tiere! Danke Alexa.  Bitte!
  • 34. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 3434 vonvon 6060 Flussdiagramme erstellenFlussdiagramme erstellen
  • 35. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 3535 vonvon 6060 FlussdiagrammFlussdiagramm Willkommen in deinem Zoo. Starte Mein Zoo Nenne mir ein Tier aus meinem Zoo! In deinem Zoo leben 42 Tiere! »nenne« »anzahl« »nenne« »anzahl« Bitte! »danke« »danke« »danke«
  • 36. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 3636 vonvon 6060 Alexa Skills Kit konfigurierenAlexa Skills Kit konfigurieren
  • 37. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 3737 vonvon 6060 Eigene Slot Types erstellenEigene Slot Types erstellen
  • 38. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 3838 vonvon 6060 Eigene Intents erstellenEigene Intents erstellen
  • 39. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 3939 vonvon 6060 HTTPS Endpoint konfigurierenHTTPS Endpoint konfigurieren
  • 40. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 4040 vonvon 6060 SSL Zertifikat konfigurierenSSL Zertifikat konfigurieren
  • 41. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 4141 vonvon 6060 HTTPS Endpoint testenHTTPS Endpoint testen
  • 42. Skill Code implementierenSkill Code implementieren
  • 43. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 4343 vonvon 6060 Beispielanwendung installierenBeispielanwendung installieren $ git clone https://github.com/travello-gmbh/example-zoo-skill $ cd example-zoo-skill $ composer install $ sudo chmod -R 777 data/cache/ // Virtual Host für http://example-zoo-skill einrichte // mit dem Pfad example-zoo-skill/html/ als Doc Root
  • 44. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 4444 vonvon 6060 Beispielanwendung testenBeispielanwendung testen /data/postman/collection.json
  • 45. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 4545 vonvon 6060 Textdatei aktualisierenTextdatei aktualisieren return [ 'launchTitle' => 'Willkommen', 'launchMessage' => 'Willkommen in deinem Zoo', 'repromptMessage' => 'Noch ein Tier oder abbrechen?', 'helpTitle' => 'Hilfe', 'helpMessage' => 'Frage, welches Tier in deinem Zoo ' . 'ist und wie viele Tiere es sind.', 'cancelTitle' => 'Danke', 'cancelMessage' => 'Danke und bis bald!', 'stopTitle' => 'Danke', 'stopMessage' => 'Danke und bis bald!', 'animalTitle' => 'Ein Tier', 'animalMessage' => '%1$s lebt in deinem Zoo!', 'countTitle' => 'Tierzählung', 'countMessage' => 'In deinem Zoo leben %1$s Tiere!', ]; /data/texts/zoo.common.texts.de-DE.php
  • 46. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 4646 vonvon 6060 Intent Klasse erstellenIntent Klasse erstellen <?php namespace ZooIntent; use TravelloAlexaLibraryIntentAbstractIntent; use TravelloAlexaLibraryResponseAlexaResponse; use TravelloAlexaLibraryResponseCardStandard; use TravelloAlexaLibraryResponseOutputSpeechSSML; class AnimalIntent extends AbstractIntent { const NAME = 'AnimalIntent'; public function handle(string $smallImageUrl, string $largeImageUrl): AlexaResponse { $zooTitle = $this->getTextHelper()->getAnimalTitle(); $zooMessage = $this->getTextHelper()->getAnimalMessage('Ein Elefant'); $this->getAlexaResponse()->setOutputSpeech(new SSML($zooMessage)); $this->getAlexaResponse()->setCard( new Standard($zooTitle, $zooMessage, $smallImageUrl, $largeImageUrl) ); return $this->getAlexaResponse(); } } /module/Zoo/src/Intent/AnimalIntent.php
  • 47. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 4747 vonvon 6060 Skill Configuration ISkill Configuration I <?php namespace Zoo; use TravelloAlexaLibraryApplicationAlexaApplication; use TravelloAlexaLibraryTextHelperTextHelper; class ConfigProvider { const NAME = 'zoo-skill'; public function getSkills(): array { return [ self::NAME => [ 'applicationId' => 'amzn1.ask.skill.place-your-skill-id-here', 'applicationClass' => AlexaApplication::class, 'textHelperClass' => TextHelper::class, 'sessionDefaults' => [], 'smallImageUrl' => 'https://www.travello.audio/cards/zoo-480x480.png', 'largeImageUrl' => 'https://www.travello.audio/cards/zoo-800x800.png', /** ... */ ] ]; } } /module/Zoo/src/ConfigProvider.php
  • 48. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 4848 vonvon 6060 Skill Configuration IISkill Configuration II namespace Zoo; use TravelloAlexaZfIntentAbstractIntentFactory; use ZooIntentAnimalIntent; class ConfigProvider { public function getSkills(): array { return [ self::NAME => [ /** ... */ 'intents' => [ 'aliases' => [ AnimalIntent::NAME => AnimalIntent::class ], 'factories' => [ AnimalIntent::class => AbstractIntentFactory::class ], ], 'texts' => [ 'de-DE' => include PROJECT_ROOT . '/data/texts/zoo.common.texts.de-DE.php', 'en-US' => include PROJECT_ROOT . '/data/texts/zoo.common.texts.en-US.php', ], ] ]; } } /module/Zoo/src/ConfigProvider.php
  • 49. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 4949 vonvon 6060 Zoo Anwendung testenZoo Anwendung testen /data/postman/collection.json
  • 50. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 5050 vonvon 6060 Weitere FeaturesWeitere Features Session Attribute step2→ Slot-Type Tierarten step4→ https://github.com/travello-gmbh/example-zoo-skill Zweiter Intent step3→
  • 51. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 5151 vonvon 6060 In Kürze in der Library 3.0In Kürze in der Library 3.0 https://github.com/travello-gmbh/amazon-alexa-skill-library Codegenerierung für Skills Codegenerierung für Intents
  • 53. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 5353 vonvon 6060 Früher ErfolgFrüher Erfolg 6 Monate Top 10 Aktivierte Skills 75.000 Kunden bisher 64 Kundenbewertungen bisher 2.500.000 »Utterances« bisher Meist genutzter Skill (DE) in 05/2017
  • 54. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 5454 vonvon 6060 Größte HerausforderungenGrößte Herausforderungen Slot Type für deutsche Vorname Signaturvalidierung Kategorie Slot Type Intents→ Chance ersten Skill abzuschießen Zweiter Server für Tests Komplexeres VUI / CUI
  • 55. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 5555 vonvon 6060 ZertifizierungsprozessZertifizierungsprozess 7 Tage für Feedback (02/2017) Signaturvalidierung Problem 16 Stunden bis Live (07/2017) Invocation Name Problem 0 Probleme »Abbrechen« Intent Problem
  • 56. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 5656 vonvon 6060 Zahlen zur EntwicklungZahlen zur Entwicklung 10 Arbeitstage zusammen 80% für Infrastruktur Code 15 Arbeitstage zusammen 90% für Skill Code 20% für Skill Code 10% für Infrastruktur Code
  • 57. IPC 2017 MünchenIPC 2017 MünchenRalf EggertRalf Eggert 5757 vonvon 6060 Wichtigste ErkenntnisseWichtigste Erkenntnisse Mit einfachem Skill beginnen Gründlich testen Solide Code Basis schreiben Mehr als einen Skill erstellen Durchdachte VUI erstellen Slot-Types nicht blind vertrauen Spaß haben!
  • 60. Danke!Danke! Mail: ralf@travello.audioMail: ralf@travello.audio Web: www.travello.audioWeb: www.travello.audio