Google Cloud Messaging

Upozornění

GCM Google zastaralé od 10. dubna 2018. Následující dokumentace a ukázkové projekty již nemusí být zachovány. GCM Server a klientská rozhraní API pro Google se odeberou hned jako 29. května 2019. Google doporučuje migrovat aplikace GCM do Firebase Cloud Messaging (FCM). Další informace o vyřazení a migraci GCM najdete v tématu nepoužívané cloudové zasílání zpráv Google.

Pokud chcete začít používat Firebase Cloud Messaging pomocí Xamarin, přečtěte si téma Firebase Cloud Messaging.

Google Cloud Messaging (GCM) je služba, která usnadňuje zasílání zpráv mezi mobilními aplikacemi a serverovými aplikacemi. Tento článek poskytuje přehled o tom, jak GCM funguje, a vysvětluje, jak můžete nakonfigurovat služby Google, aby vaše aplikace mohla používat GCM.

Logo Google Cloud Messaging

Toto téma poskytuje přehled o tom, jak Google Cloud Messaging směruje zprávy mezi vaší aplikací a serverem aplikace. poskytuje podrobný postup pro získání přihlašovacích údajů, aby vaše aplikace mohla využívat služby GCM Services.

Přehled

Google Cloud Messaging (GCM) je služba, která zpracovává odesílání, směrování a zařazení zpráv mezi serverovými aplikacemi a mobilními klientskými aplikacemi. Klientská aplikace je aplikace s podporou GCM, která běží na zařízení. Aplikační server (od vás nebo vaší společnosti) je server s podporou GCM, na který klientská aplikace komunikuje prostřednictvím GCM:

GCM se nachází mezi klientskou aplikací a aplikačním serverem.

Pomocí GCM můžou aplikační servery posílat zprávy na jedno zařízení, skupinu zařízení nebo několik zařízení, která se přihlásila k odběru tématu. Klientská aplikace může použít GCM k přihlášení k odběru zpráv z aplikačního serveru (například pro příjem vzdálených oznámení). GCM také umožňuje klientským aplikacím odesílat do aplikačního serveru zprávy o zpětném naproti směru.

Google Cloud Messaging v akci

Když se podřízené zprávy odesílají z aplikačního serveru do klientské aplikace, server aplikace tuto zprávu pošle na server pro připojení GCM. Server pro připojení GCM pak přepošle zprávu na zařízení, ve kterém je spuštěná vaše klientská aplikace. Zprávy se dají odesílat přes HTTP nebo XMPP (Extensible Messaging and represence Protocol). Vzhledem k tomu, že klientské aplikace nejsou vždy připojené ani spuštěné, služba GCM Connection Server zařadí a ukládá zprávy a odesílá je do klientských aplikací při opětovném připojení a zpřístupnění. Podobně bude GCM zařadit do fronty zprávy z klientské aplikace do aplikačního serveru, pokud server App není k dispozici.

GCM používá následující pověření k identifikaci aplikačního serveru a klientské aplikace a používá tyto přihlašovací údaje k autorizaci transakcí zpráv prostřednictvím GCM:

  • Klíč rozhraní APIklíč rozhraní API poskytuje přístup k aplikačnímu serveru pro Google Services; GCM používá tento klíč k ověření serveru aplikace. Než budete moct používat službu GCM, musíte nejdřív získat klíč rozhraní API z konzole pro vývojáře Google vytvořením projektu. Klíč rozhraní API by měl zůstat zabezpečený; Další informace o ochraně klíče rozhraní API najdete v tématu osvědčené postupy pro bezpečné použití klíčů rozhraní API.

  • ID odesílateleID odesílatele autorizuje aplikační server na klientskou aplikaci – jedná se o jedinečné číslo, které identifikuje aplikační server, který je povolený posílat zprávy do klientské aplikace. ID odesílatele je také číslo projektu; ID odesílatele získáte v konzole pro vývojáře Google při registraci projektu.

  • Registrační tokenregistrační token je identita GCM vaší klientské aplikace na daném zařízení. Registrační token se generuje za běhu – vaše aplikace obdrží registrační token, když se při spuštění na zařízení poprvé registruje do GCM. Registrační token autorizuje instanci klientské aplikace (běžící na tomto konkrétním zařízení) pro příjem zpráv z GCM.

  • ID aplikace – identita klientské aplikace (nezávislá na daném zařízení), která se registruje pro příjem zpráv z GCM. V Androidu je ID aplikace název balíčku zaznamenaný v AndroidManifest.xml, například .

Nastavení Google Cloud Messaging (dále v tomto průvodci) poskytuje podrobné pokyny k vytvoření projektu a generování těchto přihlašovacích údajů.

V následujících částech se dozvíte, jak se tyto přihlašovací údaje používají, když klientské aplikace komunikují s aplikačními servery prostřednictvím GCM.

Registrace pomocí GCM

Klientská aplikace nainstalovaná na zařízení se musí nejdřív zaregistrovat v GCM, než může dojít k odeslání zprávy. Klientská aplikace musí dokončit registrační postup, který je znázorněný v následujícím diagramu:

Kroky registrace aplikace

  1. Klientská aplikace kontaktuje GCM k získání registračního tokenu a předání ID odesilatele do GCM.

  2. GCM vrátí registrační token do klientské aplikace.

  3. Klientská aplikace přepošle registrační token na aplikační server.

Aplikační server ukládá registrační token do mezipaměti pro následnou komunikaci s klientskou aplikací. V případě potřeby může server aplikace odeslat potvrzení zpátky do klientské aplikace, aby označoval, že registrační token byl přijat. Po vykonání tohoto handshake může klientská aplikace přijímat zprávy z (nebo posílat zprávy) aplikačnímu serveru.

Pokud klientská aplikace již nechce dostávat zprávy ze serveru aplikace, může odeslat požadavek na server aplikace, aby odstranil registrační token. Pokud klientská aplikace přijímá zprávy témat (vysvětleno dále v tomto článku), může zrušit odběr tohoto tématu. Pokud se klientská aplikace odinstaluje ze zařízení, GCM to detekuje a automaticky upozorní server aplikace, aby odstranil registrační token.

Navazující zasílání zpráv

Když aplikační server odešle klientovi zprávu pro příjem dat, postupuje podle kroků v následujícím diagramu:

Úložiště pro zasílání zpráv a předávací diagram

  1. Aplikační server zprávu pošle GCM.

  2. Pokud není k dispozici klientské zařízení, server GCM ukládá zprávu do fronty pro pozdější přenos.

  3. Když je klientské zařízení k dispozici, GCM odešle zprávu do klientské aplikace v tomto zařízení.

  4. Klientská aplikace obdrží zprávu od GCM a zpracuje ji odpovídajícím způsobem. Pokud je například zpráva vzdálené oznámení, zobrazí se uživateli.

V tomto scénáři zasílání zpráv (když aplikační server pošle zprávu do jediné klientské aplikace) můžou zprávy až 4kB.

Podrobné informace o přijímání zpráv GCM v Androidu (včetně ukázek kódu) najdete v tématu Vzdálená oznámení.

Zasílání zpráv o tématu

Téma zasílání zpráv je typ zasílání zpráv pro příjem dat, kde aplikační server pošle jednu zprávu několika zařízením klientských aplikací, která se přihlásí k odběru tématu (například předpověď počasí). Zprávy o tématu můžou být až do 2 KB délky a témata pro zasílání zpráv podporují až 1 000 000 předplatných na aplikaci. Pokud se GCM používá jenom pro zasílání zpráv o tématech, klientská aplikace není nutná k odeslání registračního tokenu na aplikační server.

Seskupit zprávy

Skupinová zpráva je typ zasílání zpráv za sebou, kde aplikační server pošle jednu zprávu několika zařízením klientských aplikací, která patří do skupiny (například skupina zařízení, která patří jednomu uživateli). Zprávy skupiny můžou mít až 2 KB délku pro zařízení s iOS a velikost až 4KB pro zařízení s Androidem. Skupina je omezená na maximálně 20 členů.

Odesílání zpráv z nadřazeného

Pokud se klientská aplikace připojí k serveru, který podporuje XMPP, může odesílat zprávy zpátky na aplikační server, jak je znázorněno v následujícím diagramu:

Odesílání zpráv z nadřazeného diagramu

  1. Klientská aplikace pošle zprávu na server připojení GCM XMPP.

  2. Pokud je aplikační server odpojený, server GCM uloží zprávu do fronty pro pozdější přesměrování.

  3. Po opětovném připojení serveru aplikace GCM přepošle zprávu na aplikační server.

  4. Aplikační Server analyzuje zprávu, aby ověřila identitu klientské aplikace, a pak pošle "ACK", aby GCM potvrzení příjmu zprávy.

  5. Aplikační server zpracuje zprávu.

Zprávy o nadřízeném webu Google vysvětlují, jak strukturovat zprávy kódované ve formátu JSON a posílat je na aplikační servery, na kterých běží server cloudového připojení Google XMPP.

Nastavení Google Cloud Messaging

Než budete moct ve své aplikaci používat služby GCM, musíte nejdřív získat přihlašovací údaje pro přístup k serverům GCM Google. Následující části popisují kroky potřebné k dokončení tohoto procesu:

Povolit služby Google pro vaši aplikaci

  1. Přihlaste se ke konzole pro vývojáře Google pomocí svého účtu Google (tj. vaší adresy Gmail) a vytvořte nový projekt. Máte-li existující projekt, vyberte projekt, u kterého chcete povolit GCM. V následujícím příkladu je vytvořen nový projekt s názvem XamarinGCM :

    Vytváření projektu XamarinGCM

  2. Potom zadejte název balíčku aplikace (v tomto příkladu je název balíčku je com. Xamarin. gcmexample) a klikněte na pokračovat a vyberte a nakonfigurujte služby:

    Zadání názvu balíčku

    Všimněte si, že tento název balíčku je také ID aplikace pro vaši aplikaci.

  3. Část Výběr a konfigurace služeb obsahuje seznam služeb Google, které můžete přidat do aplikace. Klikněte na cloudové zasílání zpráv:

    Výběr zasílání zpráv z cloudu

  4. Potom klikněte na Povolit Google Cloud MESSAGING:

    Povolit Google Cloud Messaging

  5. Pro vaši aplikaci se vygeneruje klíč rozhraní API serveru a ID odesílatele . Poznamenejte si tyto hodnoty a klikněte na Zavřít:

    Zobrazí se klíč rozhraní API serveru a ID odesílatele.

    Chránit klíč rozhraní API – není určený pro veřejné použití. Pokud dojde k ohrožení bezpečnosti klíče rozhraní API, neautorizované servery můžou publikovat zprávy do klientských aplikací. Osvědčené postupy pro bezpečné použití klíčů rozhraní API poskytují užitečné pokyny pro ochranu klíče rozhraní API.

zobrazení Project Nastavení

Nastavení projektu můžete kdykoli zobrazit tak, že se přihlásíte ke konzole Google Cloud a vyberete svůj projekt. Můžete například zobrazit ID odesílatele tak, že v rozevírací nabídce v horní části stránky vyberete svůj projekt (v tomto příkladu se projekt nazývá XamarinGCM). id odesílatele je číslo Project, jak je znázorněno na tomto snímku obrazovky (id odesílatele je tu 9349932736):

Zobrazení ID odesílatele

Klíč rozhraní APIzobrazíte tak, že kliknete na Správce rozhraní API a pak na přihlašovací údaje:

Zobrazení klíče rozhraní API

Pro další čtení

  • Rfc 6120 a RFC 6121 vysvětlují a definují protokol XMPP (Extensible Messaging and Presence Protocol).

Souhrn

Tento článek poskytuje přehled Google Cloud Messaging (GCM). Vysvětluje různé přihlašovací údaje, které se používají k identifikaci a autorizaci zasílání zpráv mezi aplikačními servery a klientskými aplikacemi. Využívala nejběžnější scénáře zasílání zpráv a podrobně popisuje kroky k registraci vaší aplikace v GCM pro použití služeb GCM.