(En date du 09/07/2013)
Il y a déjà deux mois, Google a annoncé Google Cloud Messaging, qui envoie des notifications push aux extensions Chrome, etc. Maripo a écrit l'article suivant à un stade précoce.
J'ai essayé Google Cloud Messaging pour Chrome
J'ai écrit une démo qui envoie un identifiant de chaîne de l'extension Chrome à GAE et envoie un message de GAE à l'identifiant envoyé, je vais donc l'écrire pour le moment.
Dans cet article, j'écrirai ce que j'ai remarqué lorsque j'ai essayé GCM. De plus, étant donné que la technologie de travail Web de l'auteur est faible, il serait utile que vous me parliez des points qui peuvent être piqués dans le référentiel ci-dessus.
J'écrirai sur les deux projets ci-dessus à la fin.
J'avais déjà créé une extension Chrome pour un certain point, mais j'ai commencé par recommencer en me basant sur le tutoriel original.
L'enregistrement étendu lui-même n'a rien à voir avec GCM à première vue, mais il est utilisé pour obtenir l'ID de canal. L'ID de chaîne est la destination qui pointe vers les extensions Chrome installées dans Chrome de chaque utilisateur.
Cliquez ici pour une citation de Honke:
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.
Je m'inscris sur le serveur de Google qui réalise GCM, mais pour le moment, il ne coûte 5 $ qu'une seule fois pour m'inscrire en tant que développeur. Il devrait également être efficace lors de l'utilisation d'API autres que GCM. La plupart des lecteurs ici pensent que cette étape a été franchie il y a quelques années.
Maintenant, téléchargez l'extension que vous avez créée avec zip. Bien sûr, vous pouvez limiter les utilisateurs autorisés à télécharger. Cette fois, je l'ai téléchargé sous la forme de Trusted Tester uniquement == Pratiquement uniquement moi-même.
https://chrome.google.com/webstore/developer/dashboard
Je pense que c'est basique, mais lorsque vous téléchargez une extension Chrome sur Google Play, les changements ne sont pas immédiatement reflétés. Plus précisément, il dit:
L'article est en cours de publication. Cela peut prendre jusqu'à 60 minutes pour qu'il apparaisse dans le Chrome Web Store.
En fait, cela ne semble pas prendre 60 minutes pour s'afficher, mais il ne se met pas à jour en 1 seconde.
Il est subtilement ennuyeux de toujours ressentir ce décalage pendant le développement, c'est donc une bonne idée de définir manuellement la clé comme décrit plus loin dans l'article de Maripo. Vous pouvez rechercher la clé et l'intégrer manuellement dans manifest.json. Si vous utilisez google-chrome sous Linux, il semble y avoir une extension sous ~ / .config / google-chrome / Default / Extensions /, vous pouvez donc en extraire la clé et la mettre dans celle en cours de développement.
L'extension Chrome doit faire quatre choses pour recevoir un message:
Je n'ai pas d'autre choix que d'écrire des autorisations dans manifest.json, donc je vais le faire.
"Prepare channel ID" est une extension enregistrée dans le Chrome Web Store, et vous pouvez l'obtenir en cliquant sur l'API appropriée (chrome.pushMessaging.getChannelId ()).
Vous devez créer vous-même la partie "Indiquez l'ID du canal au serveur" en fonction de la forme du service que vous souhaitez fournir à la fin. Je l'ai implémenté cette fois comme si elle avait été envoyée lors de l'ouverture du popup.
"Implémenter un rappel pour recevoir un message" n'est pas dans le tutoriel, mais cela peut être fait naturellement en utilisant le mécanisme d'arrière-plan.
Je n'avais pas d'exemple d'implémentation fonctionnelle de cette partie, donc je l'ai écrit au cas où, mais ce n'était pas un gros problème. Cependant, il y a quelque chose comme une habitude propre à l'extension Chrome, alors j'ai appris cela.
La console API Google vous donne finalement trois informations: Ceux-ci n'ont pas de date d'expiration et semblent être utilisables pour toujours.
À partir de ces trois ensembles, vous obtenez un jeton d'accès limité dans le temps. Ce jeton d'accès, l'ID de canal (destination) et la charge utile (corps du message) envoient en fait le message à une extension spécifique.
Une fois de la famille principale.
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.
Les trois premiers doivent être obtenus manuellement via la console des API Google à l'avance, et le jeton d'accès doit être obtenu à nouveau par le serveur, le cas échéant.
Si vous envoyez des messages manuellement avec la commande curl, vous n'avez pas besoin d'un serveur. Vous pouvez obtenir un jeton d'accès à partir de trois types d'informations, l'ID client, le secret client et le jeton d'actualisation, et envoyer un message à l'aide du jeton d'accès et de l'ID de canal.
Je voulais lier l'extension Chrome à GAE, j'ai donc écrit le côté serveur comme il convient.
Un bouton sera placé lorsque vous installerez l'extension Chrome. Lorsque vous appuyez sur le bouton, l'ID du canal est envoyé au serveur. Le serveur se souvient de l'ID de canal et peut envoyer un message simple à l'extension de navigateur qui a envoyé l'ID de canal.
De plus, lorsque vous jouez, vous devez au moins effectuer le travail suivant. C'est beaucoup de problèmes
C'est également important parce que nous n'accordons pas beaucoup d'importance à la sécurité.