Ich beginne mit dem neuen Google-Dienst für die Benachrichtigungen Firebase Cloud Messaging
.
Dank dieses Codes https://github.com/firebase/quickstart-android/tree/master/messaging konnte ich Benachrichtigungen von meiner Firebase-Benutzerkonsole an mein Android-Gerät senden .
Gibt es eine API oder eine Möglichkeit, eine Benachrichtigung zu senden, ohne die Firebase-Konsole zu verwenden? Ich meine zum Beispiel eine PHP-API oder ähnliches, um Benachrichtigungen direkt von meinem eigenen Server zu erstellen.
Antworten:
Firebase Cloud Messaging verfügt über serverseitige APIs, die Sie zum Senden von Nachrichten aufrufen können. Siehe https://firebase.google.com/docs/cloud-messaging/server .
Das Senden einer Nachricht kann so einfach sein wie
curl
das Aufrufen eines HTTP-Endpunkts. Siehe https://firebase.google.com/docs/cloud-messaging/server#implementing-http-connection-server-protocolquelle
Dies funktioniert mit CURL
$message
ist Ihre Nachricht, die an das Gerät gesendet werden soll$id
ist das GeräteregistrierungstokenYOUR_KEY_HERE
ist Ihr Server-API-Schlüssel (oder Legacy-Server-API-Schlüssel)quelle
{"multicast_id":3694931298664346108,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"MessageTooBig"}]}
. Was kann getan werden, um dies zu beheben?Verwenden Sie eine Service-API.
URL:
https://fcm.googleapis.com/fcm/send
Methodentyp:
POST
Überschriften:
Körper / Nutzlast:
Und damit können Sie in Ihrer App den folgenden Code in Ihre aufzurufende Aktivität einfügen:
Überprüfen Sie auch die Antwort auf Firebase onMessageReceived, die nicht aufgerufen wird, wenn die App im Hintergrund angezeigt wird
quelle
"to" : "to_id(firebase refreshedToken)"
anstelle der Geräte-ID eingeben?"all"
funktioniert überhaupt nicht. Ich verwende C #WebRequest
, um eine Benachrichtigung zu senden. @AshikurRahman Ihr Vorschlag auch willkommen. Ich kämpfe und suche seit 3-4 Tagen.Senden Sie Nachrichten an bestimmte Geräte
Um Nachrichten an bestimmte Geräte zu senden, setzen Sie das Registrierungstoken für die jeweilige App-Instanz
Senden Sie Nachrichten an Themen
hier ist das thema: / themen / foo-bar
Senden Sie Nachrichten an Gerätegruppen
Das Senden von Nachrichten an eine Gerätegruppe ist dem Senden von Nachrichten an ein einzelnes Gerät sehr ähnlich. Setzen Sie den Parameter to auf den eindeutigen Benachrichtigungsschlüssel für die Gerätegruppe
API-URL:
https://fcm.googleapis.com/fcm/send
Überschriften
Anforderungsmethode:
POST
Text anfordern
Nachrichten an bestimmte Geräte
Nachrichten zu Themen
Nachrichten an Gerätegruppen
quelle
Wie von Frank erwähnt, können Sie die HTTP-API von Firebase Cloud Messaging (FCM) verwenden, um eine Push-Benachrichtigung von Ihrem eigenen Back-End aus auszulösen. Aber du wirst es nicht können
Das heißt: Sie müssen die FCM / GCM-Registrierungs-IDs (Push-Token) selbst speichern oder FCM-Themen verwenden, um Benutzer zu abonnieren. Beachten Sie auch, dass FCM keine API für Firebase-Benachrichtigungen ist , sondern eine untergeordnete API ohne Zeitplanung oder Open-Rate-Analyse. Firebase-Benachrichtigungen bauen auf FCM auf.
quelle
Zuerst müssen Sie ein Token von Android erhalten und dann können Sie diesen PHP-Code aufrufen und sogar Daten für weitere Aktionen in Ihrer App senden.
quelle
Sie können beispielsweise ein PHP-Skript für Google Cloud Messaging (GCM) verwenden. Firebase und seine Konsole befinden sich direkt über GCM.
Ich habe diesen auf github gefunden: https://gist.github.com/prime31/5675017
Hinweis: Dieses PHP-Skript führt zu einer Android-Benachrichtigung .
Deshalb: Lesen Sie diese Antwort von Koot, wenn Sie die Benachrichtigung in Android erhalten und anzeigen möchten.
quelle
Benachrichtigungen oder Datennachrichten können mithilfe des FCM HTTP v1-API-Endpunkts an den Firebase-Basis-Cloud-Messaging-Server gesendet werden. https://fcm.googleapis.com/v1/projects/zoftino-stores/messages:send .
Sie müssen den privaten Schlüssel des Dienstkontos mithilfe der Firebase-Konsole generieren und herunterladen und den Zugriffsschlüssel mithilfe der Google API-Clientbibliothek generieren. Verwenden Sie eine beliebige http-Bibliothek, um Nachrichten über dem Endpunkt zu veröffentlichen. Der folgende Code zeigt die Nachricht über OkHTTP. Den vollständigen serverseitigen und clientseitigen Code finden Sie unter Firebase Cloud Messaging und beim Senden von Nachrichten an mehrere Clients anhand des Beispielbeispiels fcm
Wenn eine bestimmte Clientnachricht gesendet werden muss, müssen Sie den Firebase-Registrierungsschlüssel des Clients abrufen. Weitere Informationen finden Sie unter Senden von Client- oder gerätespezifischen Nachrichten an den FCM-Server
quelle
Diese Lösung von diesem Link hat mir sehr geholfen. Sie können es überprüfen.
Die Datei curl.php mit diesen Anweisungen kann funktionieren.
Merken
you need to execute curl.php file using another browser ie not from the browser that is used to get the user token. You can see notification only if you are browsing another website.
quelle
Wenn Sie Push-Benachrichtigungen von Android senden möchten, lesen Sie meinen Blog-Beitrag
Senden Sie Push-Benachrichtigungen von einem Android-Telefon an ein anderes ohne Server.
Das Senden einer Push-Benachrichtigung ist nichts anderes als eine Post-Anfrage an https://fcm.googleapis.com/fcm/send
Code-Snippet mit Volley:
Ich empfehle Ihnen allen, meinen Blog-Beitrag für vollständige Details zu lesen.
quelle
Mit der Firebase-Konsole können Sie basierend auf dem Anwendungspaket eine Nachricht an alle Benutzer senden. Mit der CURL- oder PHP-API ist dies jedoch nicht möglich.
Über die API Sie können Benachrichtigungen an bestimmte Geräte-IDs oder abonnierte Benutzer an ausgewählte Themen- oder abonnierte Themenbenutzer senden.
quelle
Oder Sie können Firebase-Cloud-Funktionen verwenden, was für mich die einfachere Möglichkeit ist, Ihre Push-Benachrichtigungen zu implementieren. Firebase / Funktionsbeispiele
quelle
Wenn Sie PHP verwenden, empfehle ich die Verwendung des PHP SDK für Firebase: Firebase Admin SDK . Für eine einfache Konfiguration können Sie die folgenden Schritte ausführen:
Holen Sie sich die JSON- Datei mit den Projektanmeldeinformationen von Firebase ( initialisieren Sie das SDK ) und fügen Sie sie in Ihr Projekt ein.
Installieren Sie das SDK in Ihrem Projekt. Ich benutze Komponisten:
Probieren Sie ein Beispiel aus der Cloud Messaging-Sitzung in der SDK-Dokumentation aus:
quelle