Meiner Meinung nach sollte jeder Softwareentwickler wissen was, wann, wie und wo in seinem Programm passiert. Besonders bei einem sprachgesteuerten Interface, wie beim Amazon Echo, ist das sehr wichtig. Daher schauen wir uns heute an, wie wir den Request eines Amazon Alexa Skill Aufrufs loggen können.
In meinem Beitrag gehe ich auf die Entwicklung eines Amazon Alexa Custom Skill als Web Service ein. Das heißt ich nutze kein Amazon Lambda, sondern einen einfachen PHP-fähigen Webspace, der aber über HTTPS erreichbar ist. Wenn ihr mehr über die Voraussetzungen wissen wollt, hier ist ein Beitrag zu dem Thema.
Sind alle Voraussetzungen erfüllt und hat vielleicht dieses Beispiel funktioniert, geht es jetzt weiter. Ihr legt entweder eine neue index.php Datei an oder verwendet die vorhandene schreibt das hier rein:
<?php // Daten aus dem Request holen $entityBody = file_get_contents ( 'php://input' ); // Datei namens echo.log öffen $datei_handle = fopen ( "echo.log", "a+" ); // etwas validierung if (is_string($entityBody ) && json_decode ( $entityBody ) != null) { // Request schoen formatieren fputs ( $datei_handle, "\n" ); fputs ( $datei_handle, json_encode ( json_decode ( $entityBody ), JSON_PRETTY_PRINT ) ); fputs ( $datei_handle, "\n" ); } // alles speichern und beenden fclose ( $datei_handle ); ?>
Das Ergebnis sollte so aussehen:
{ "version": "1.0", "session": { "new": true, "sessionId": "amzn1.echo-api.session.3bx", "application": { "applicationId": "amzn1.ask.skill.xxx" }, "user": { "userId": "amzn1.ask.account.AERD35SIXMYMYY6NADKNOQ" } }, "context": { "AudioPlayer": { "playerActivity": "IDLE" }, "System": { "application": { "applicationId": "amzn1.ask.skill.xxx" }, "user": { "userId": "amzn1.ask.account.AERD35SIXMYMYY6NADKNOQ" }, "device": { "supportedInterfaces": { "AudioPlayer": {} } } } }, "request": { "type": "LaunchRequest", "requestId": "amzn1.echo-api.request.861e", "timestamp": "2017-03-23T16:47:09Z", "locale": "de-DE" } }
cool oder?
Copyright © 2017 AxxG – Alexander Gräsel
Kommentar verfassen