(Stand 09.07.2013)
Bereits vor zwei Monaten kündigte Google Google Cloud Messaging an, das Push-Benachrichtigungen an Chrome-Erweiterungen und dergleichen sendet. Maripo hat den folgenden Artikel frühzeitig geschrieben.
Ich habe Google Cloud Messaging für Chrome ausprobiert
Ich habe eine Demo geschrieben, die eine Kanal-ID von der Chrome-Erweiterung an GAE sendet und eine Nachricht von GAE an die gesendete ID sendet, daher werde ich sie vorerst schreiben.
In diesem Artikel werde ich schreiben, was mir aufgefallen ist, als ich GCM ausprobiert habe. Da die webbasierte Arbeitstechnologie des Autors niedrig ist, wäre es außerdem hilfreich, wenn Sie mir die Punkte mitteilen könnten, die im obigen Repository gestochen werden können.
Ich werde am Ende über die beiden oben genannten Projekte schreiben.
Ich hatte zuvor für eine bestimmte Angelegenheit eine Chrome-Erweiterung erstellt, diese jedoch zunächst basierend auf dem ursprünglichen Lernprogramm erneut ausgeführt.
Die erweiterte Registrierung selbst hat auf den ersten Blick nichts mit GCM zu tun, sondern dient zum Abrufen der Kanal-ID. Die Kanal-ID ist das Ziel, das auf die in Chrome jedes Benutzers installierten Chrome-Erweiterungen verweist.
Klicken Sie hier, um ein Angebot von Honke zu erhalten:
Similar to an email address, the channel ID is used to identify and send messages to a specific user of your app or extension. Your app or extension needs to send this value to its application server so that the server can trigger push messages back.
Ich registriere mich auf dem Server von Google, der GCM realisiert, aber derzeit kostet die Registrierung als Entwickler nur einmal 5 US-Dollar. Es sollte auch effektiv sein, wenn andere APIs als GCM verwendet werden. Die meisten Leser hier glauben, dass dieser Schritt vor einigen Jahren gemacht wurde.
Laden Sie jetzt die Erweiterung hoch, die Sie mit zip erstellt haben. Natürlich können Sie einschränken, wer herunterladen darf. Dieses Mal habe ich es nur in Form eines vertrauenswürdigen Testers hochgeladen == Praktisch nur ich selbst.
https://chrome.google.com/webstore/developer/dashboard
Ich denke, es ist einfach, aber wenn Sie eine Chrome-Erweiterung auf Google Play hochladen, werden die Änderungen nicht sofort wiedergegeben. Im Einzelnen heißt es:
Der Artikel wird gerade veröffentlicht. Es kann bis zu 60 Minuten dauern, bis es im Chrome Web Store angezeigt wird.
Eigentlich scheint es nicht 60 Minuten zu dauern, bis es angezeigt wird, aber es wird nicht in 1 Sekunde aktualisiert.
Es ist auf subtile Weise ärgerlich, diese Verzögerung während der Entwicklung immer zu erleben. Daher ist es eine gute Idee, den Schlüssel manuell einzustellen, wie später in Maripos Artikel beschrieben. Sie können den Schlüssel nachschlagen und manuell in manifest.json einbetten. Wenn Sie Google-Chrome unter Linux verwenden, scheint es unter ~ / .config / google-chrome / Default / Extensions / eine Erweiterung zu geben, sodass Sie den Schlüssel herausziehen und in den in der Entwicklung befindlichen Schlüssel einfügen können.
Es gibt vier Dinge, die die Chrome-Erweiterung tun muss, um eine Nachricht zu erhalten:
Ich habe keine andere Wahl, als Berechtigungen in manifest.json zu schreiben, also werde ich dies tun.
"Kanal-ID vorbereiten" ist eine im Chrome Web Store registrierte Erweiterung, die Sie erhalten, indem Sie auf die entsprechende API (chrome.pushMessaging.getChannelId ()) klicken.
Sie müssen den Teil "Kanal-ID dem Server mitteilen" selbst gemäß der Form des Dienstes erstellen, den Sie am Ende bereitstellen möchten. Ich habe es diesmal so implementiert, als ob es beim Öffnen des Popups gesendet wurde.
"Implementieren eines Rückrufs zum Empfangen einer Nachricht" ist nicht im Lernprogramm enthalten, kann jedoch auf natürliche Weise mithilfe des Hintergrundmechanismus durchgeführt werden.
Es gab kein funktionierendes Implementierungsbeispiel für diesen Teil, daher habe ich es für alle Fälle geschrieben, aber es war keine große Sache. Es gibt jedoch so etwas wie eine Gewohnheit, die der Chrome-Erweiterung eigen ist, also habe ich das gelernt.
Die Google API-Konsole bietet Ihnen schließlich drei Informationen: Diese haben kein Ablaufdatum und scheinen für immer verwendbar zu sein.
Aus diesen drei Sätzen erhalten Sie ein zeitlich begrenztes Zugriffstoken. Dieses Zugriffstoken, die Kanal-ID (Ziel) und die Nutzlast (Nachrichtentext) senden die Nachricht tatsächlich an eine bestimmte Nebenstelle.
Einmal aus der Oberfamilie.
You need two types of OAuth 2.0 tokens to authorize each call to the push messaging service: the refresh token and the access token. The access token authorizes each call to the service; however, this token expires after about an hour. The refresh token is used to 'refresh' the access token over time. These tokens are scoped to only send messages on behalf of your application or extension and nothing else.
Die ersten drei müssen vorab manuell über die Google APIs Console abgerufen werden, und das Zugriffstoken muss vom Server entsprechend erneut abgerufen werden.
Wenn Sie Nachrichten manuell mit dem Befehl curl senden, benötigen Sie keinen Server. Sie können ein Zugriffstoken aus drei Arten von Informationen abrufen: Client-ID, Client-Geheimnis und Aktualisierungstoken. Sie können eine Nachricht mithilfe des Zugriffstokens und der Kanal-ID senden.
Ich wollte die Chrome-Erweiterung mit GAE verknüpfen, daher habe ich die Serverseite entsprechend geschrieben.
Bei der Installation der Chrome-Erweiterung wird eine Schaltfläche platziert. Wenn Sie die Taste drücken, wird die Kanal-ID an den Server gesendet. Der Server merkt sich die Kanal-ID und kann eine einfache Nachricht an die Browser-Erweiterung senden, die die Kanal-ID gesendet hat.
Außerdem müssen Sie beim Spielen mindestens die folgenden Arbeiten ausführen. Es ist viel Ärger
Dies ist auch wichtig, da wir der Sicherheit nicht viel Aufmerksamkeit schenken.