Tag Archives: PHP

Firebase FCM Push Notification Backend

Mit Firebase Cloud Messaging, kurz FCM, kann man Notifications auf IOS und Android versenden. Im folgenden Beitrag geht es um das Versenden der Nachrichten im Backend mit PHP.

Um mit PHP Nachrichten an FCM zu schicken kann die Library

verwendet werden. Damit man Daten aus der Firebase Database verwenden kann, verwendet man zusätzlich noch die Library:

Damit ergibt sich das folgende composer File:

 

Um mit Firebase zu arbeiten erstellen wir eine backend.php Datei:

Mit der Variable $firebase kann nun auf die Datenbank zugegriffen werden und mit $client können Nachrichten versendet werden. Die json Datei und den apiKey findet man in der https://console.firebase.google.com/. Dort unter Deine App >> Projekteinstellungen >> Cloud Messaging ist der API Key und unter Deine App >> Projekteinstellungen >> Dienstkonten kann man sich einen privaten Schlüssel generieren lassen. Diesen dann entweder im gleichen Ordner wie die backend.php ablegen oder wie im Beispiel im Ordner secret. Wichtig ist das die Datei keinen entsprechende Zugriffsrechte hat, damit niemand diese über den Webserver auslesen kann.

Das folgende Beispiel liest Elemente aus der Tabelle ‘Todos’ aus. Weitere Informationen wie ihr mit firebase-php arbeiten könnt, findet ihr unter: https://github.com/kreait/firebase-php

Verschicken kann man dann eine solche ‘Aufgabe’ mit:

In dem Beispiel wird die Nachricht nur an die Clients verteilt, welche sich auf das Topic ‘todos’ subscribte haben. Hier kann man aber auch z.B. devices auswählen oder an alle verschicken. Mehr dazu unter:  https://github.com/Paragraph1/php-fcm

Ob das Senden an FCM erfolgreich war kann man mit

prüfen. Dabei sagt das Ergebnis aber nur aus ob die Nachricht an FCM übermittelt wurde, aber nicht ob die Clients diese erfolgreich erhalten haben.

Slim und Ionic und CORS

Wer sich mit Slim und Ionic ein kleine App und Rest Api bauen möchte, kann schnell mit dem Thema CORS in Kontakt kommen. Besonders beim testen auf der lokalen Maschine.

Damit es auch lokal funktioniert. Müssen die folgenden Zeilen am Anfang der index.php hinzugefügt werden (am besten ganz oben):

Dabei kann man natürlich auch die Freigabe auf bestimmte Domains einschränken. Falls man diese drei Zeilen jedoch nicht hinzufügt, erhält man bei einem http.get(…) die folgende Fehlermeldung:

PHP Dateien automatisch einbinden

Der folgende Code ermöglicht es, PHP Dateien automatisch einzubinden. Dadurch ist es möglich, automatisch eine PHP Datei einzulesen, wenn diese in ein Order kopiert wird. Der folgende Code durchsucht dabei alle Dateien und Ordner aus dem Wurzelverzeichnis. Gibt man der Konstanten “PFAD” einen anderen Wert, werden nur die darin enthaltenen Dateien und Unterordner durchsucht.

Diese Zeile berücksichtigt die Dateien “core.php”, “index.php” und “config.php” nicht. Dies ist notwendig, damit die Datei in der sich der Code befindet nicht selbst aufruft oder durch eine andere Datei aufgerufen wird, in der sie als include steht.

Geschenkeliste

Die Anwendung verwendet einen Code um Geschenke auszuwählen. Dadurch wird keine Email Adresse oder ein Name benötigt um ein Geschenk auszusuchen. Dadurch ist vollständige anonymität gewährleistet.

Presentlist ist eine Geschenkliste auf der man seine Wünsche zur Hochzeit, Geburtstag oder anderen Anlässen auflisten kann. Dabei kann man einen Titel, Beschreibung und auch ein Bild zum Geschnenk angeben, sowie Links zu Händlern oder dem Produkt angeben. Wenn sich dann jemand ein Geschenk von der Liste nimmt, ist es für die anderen nicht mehr sichtbar. Man kann gewählte Geschenke aber auch wieder freigeben und der Administrator sieht nicht wer sich welches Geschenk genommen hat.

Funktionen

  • Install Wizard
  • Geschenkeliste
  • Detail Ansicht von Geschenken
  • Geschenk auswählen
  • Geschenk freigeben
  • Geschenk per Mail teilen
  • Backend
    • Geschenk anlegen / editieren / löschen
    • Benutzer anlegen
    • Profil editieren
    • Passwort vergessen
    • Login / Logout
    • Wartungsmodus aktivieren
    • Einstellungen ändern

Für die Anwendung wird folgendes benötigt:

  • PHP 5.3.7 oder höher
  • MySQL Datenbank (andere sind aktuell nur durch bearbeiten der Sources möglich)

Weitere Informationen und die Anwendung zum download ist unter http://lightszentip.github.io/giftlist/  zu finden.

 

Wechselnde Header Grafik

Damit eure Grafik täglich wechselt benötigt ihr einfach nur folgenden Code:

Erklärung:

ruft für jeden Tag eine andere Grafik auf, welche z.B. den Namen “imgm01.jpg” oder “imgm12.jpg” trägt.

Durch is_home() passiert das aber nur bei der Startseite, andere Seiten haben Standardmäßig andere Gafiken – durch die is_ Abfragen kann man dies beinflussen. Falls keines der Abfragen zutrifft, wird die Grafik “banner.jpg” genommen.