PHP ist manchmal soooo ne Mutti! Besonders wenn man von 5.5 auf 7.1.x umsteigt. Immer und überall kommen Fehler. Das Problem: beim Amazon Alexa Skill gibt es kein visuelles Interface. Also hat man als Entwickler automatisch gelosed/verloren, wenn ein PHP-Error/-Warning auftritt. Das muss aber nicht sein! Ich zeig euch, wie ihr jede Fehlermeldung bekommt, ohne das euch Alexa jedes mal erzählt: „Bei der Kommunikation mit dem Skill ist ein Problem aufgetreten.“
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 Datei und schreibt das hier rein:
<?php // Buffer speichern lassen! ob_start(); // hier passiert was trigger_error("Irgendwas"); // Alle echo-Outputs holen $out = ob_get_clean(); // ggf auch response schon mal mit echo raus hauen // Datei namens echo.log öffen $datei_handle = fopen ( "echo.log", "a+" ); // inhalt rein schreiben fputs ( $datei_handle, $out); // alles speichern und beenden fclose ( $datei_handle ); // ggf hier einen validen response ausgeben ?>
Das Ergebnis ist eine leere weiße Seite und ihr habt eine Ausgabe im Log, die so aussehen sollte:
<br /> <b>Notice</b>: Irgendwas in <b>index.php</b> on line <b>6</b><br />
cool oder?
Ihr könnt natürlich auch alle PHP-Meldungen ausstellen mit dem Befehl:
error_reporting(0);
Copyright © 2017 AxxG – Alexander Gräsel
Kommentar verfassen