Google Cloud Messaging

Upozornění

Google od 10. dubna 2018 vyřadil GCM. Následující dokumenty a ukázkové projekty už nemusí být zachovány. Rozhraní API GCM serveru a klienta Společnosti Google se odeberou hned od 29. května 2019. Google doporučuje migrovat aplikace GCM do Microsoft Zasílání zpráv Firebase Cloud (FCM). Další informace o vyřazení a migraci GCM najdete v tématu Vyřazený cloud Microsoft Zasílání zpráv Google.

Pokud chcete začít používat Microsoft Zasílání zpráv Firebase Cloud s Xamarinem, přečtěte si téma Firebase Cloud Microsoft Zasílání zpráv.

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

Google Cloud Messaging logo

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

Přehled

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

GCM resides between the client app and the app server

Pomocí GCM můžou aplikační servery odesílat zprávy do jednoho zařízení, do skupiny zařízení nebo na několik zařízení, která se přihlašují k odběru tématu. Klientská aplikace může používat GCM k odběru podřízených zpráv ze serveru aplikace (například k přijímání vzdálených oznámení). Také GCM umožňuje klientským aplikacím odesílat nadřazené zprávy zpět na aplikační server.

Microsoft Zasílání zpráv Google Cloud v akci

Když se odesílají podřízené zprávy ze serveru aplikace do klientské aplikace, odešle server aplikace zprávu na server připojení GCM; server GCM připojení pak zprávu přepošle na zařízení, na kterém běží vaše klientská aplikace. Zprávy je možné odesílat přes protokol HTTP nebo XMPP (rozšiřitelný Microsoft Zasílání zpráv a protokol stavu). Vzhledem k tomu, že klientské aplikace nejsou vždy připojené nebo spuštěné, GCM server pro připojení vytvoří frontu a ukládá zprávy, odesílá je do klientských aplikací, jakmile se znovu připojí a budou dostupné. Podobně GCM zapíše upstreamové zprávy z klientské aplikace na aplikační server, pokud je aplikační server nedostupný.

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

  • Klíč rozhraní APIKlíč rozhraní API poskytuje vašemu aplikačnímu serveru přístup ke službám Google; GCM tento klíč používá k ověření aplikačního serveru. Než budete moct použít službu GCM, musíte nejprve získat klíč rozhraní API z konzoly Google Developer Console vytvořením projektu. Klíč rozhraní API by měl být 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 do klientské aplikace – jedná se o jedinečné číslo, které identifikuje aplikační server, který umožňuje odesílat zprávy do klientské aplikace. ID odesílatele je také číslo vašeho projektu; při registraci projektu získáte ID odesílatele z konzoly Google Developers Console.

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

  • ID aplikace – identita klientské aplikace (nezávisle na jakémkoli daném zařízení), která registruje přijímat zprávy z GCM. V Android je ID aplikace název balíčku zaznamenaný v AndroidManifest.xml, například com.xamarin.gcmexample.

Nastavení Microsoft Zasílání zpráv Google Cloud (dále v této příručce) obsahuje podrobné pokyny k vytvoření projektu a generování těchto přihlašovacích údajů.

Následující části popisují, jak se tyto přihlašovací údaje používají, když klientské aplikace komunikují se servery aplikací prostřednictvím GCM.

Registrace pomocí GCM

Klientská aplikace nainstalovaná na zařízení se musí nejprve zaregistrovat v GCM, než se může provést zasílání zpráv. Klientská aplikace musí dokončit kroky registrace uvedené v následujícím diagramu:

App registration steps

  1. Klientská aplikace kontaktuje GCM získat registrační token a předat ID odesílatele GCM.

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

  3. Klientská aplikace předá 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í. Volitelně může aplikační server odeslat potvrzení zpět do klientské aplikace, aby indikoval, že byl přijat registrační token. Po provedení této metody handshake může klientská aplikace přijímat zprávy ze serveru aplikace (nebo odesílat zprávy).

Pokud už klientská aplikace nechce přijímat zprávy ze serveru aplikace, může odeslat žádost na aplikační server, aby odstranila registrační token. Pokud klientská aplikace přijímá zprávy tématu (vysvětlené dále v tomto článku), může se odhlásit od odběru tématu. Pokud se klientská aplikace odinstaluje ze zařízení, GCM to zjistí a automaticky upozorní aplikační server, aby odstranil registrační token.

Podřízené Microsoft Zasílání zpráv

Když aplikační server odešle podřízenou zprávu do klientské aplikace, postupuje podle kroků znázorněných v následujícím diagramu:

Downstream messaging store and forward diagram

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

  2. Pokud klientské zařízení není dostupné, server GCM uloží zprávu do fronty pro pozdější přenos.

  3. Jakmile je klientské zařízení k dispozici, GCM odešle zprávu do klientské aplikace na daném zařízení.

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

V tomto scénáři zasílání zpráv (kdy aplikační server odesílá zprávu do jedné klientské aplikace), můžou být zprávy o délce až 4 kB.

Podrobné informace (včetně ukázek kódu) o příjmu podřízených GCM zpráv na Android najdete v tématu Vzdálená oznámení.

Téma Microsoft Zasílání zpráv

Téma Microsoft Zasílání zpráv je typ podřízeného zasílání zpráv, kde aplikační server odesílá jednu zprávu do více klientských zařízení aplikací, která se přihlašují k odběru tématu (například předpověď počasí). Zprávy témat můžou mít délku až 2 kB a zasílání zpráv o tématu podporuje až jeden milion odběrů na aplikaci. Pokud se GCM používá jenom pro zasílání zpráv tématu, klientská aplikace nemusí odesílat registrační token na aplikační server.

Microsoft Zasílání zpráv skupiny

Skupina Microsoft Zasílání zpráv je typ podřízeného zasílání zpráv, kdy aplikační server odesílá jednu zprávu do několika klientských zařízení, která patří do skupiny (například skupina zařízení, která patří jednomu uživateli). Zprávy skupiny můžou mít délku až 2 kB pro iOS zařízení a délku až 4 kB pro Android zařízení. Skupina je omezena na maximálně 20 členů.

Upstreamové Microsoft Zasílání zpráv

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

Upstream messaging diagram

  1. Klientská aplikace odešle zprávu GCM serveru připojení XMPP.

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

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

  4. Aplikační server analyzuje zprávu a ověří identitu klientské aplikace a pak odešle "ack" GCM k potvrzení potvrzení potvrzení o přijetí zprávy.

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

Upstreamové zprávy Společnosti Google vysvětlují, jak strukturovat zprávy kódované ve formátu JSON a odesílat je na aplikačních serverech, na kterých běží Server cloudového připojení založený na XMPP společnosti Google.

Nastavení Microsoft Zasílání zpráv Google Cloud

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

Povolení služeb Google pro vaši aplikaci

  1. Přihlaste se ke konzole Google Developers Console pomocí svého účtu Google (tj. adresy gmailu) a vytvořte nový projekt. Pokud máte existující projekt, zvolte projekt, který chcete povolit GCM. V následujícím příkladu se vytvoří nový projekt s názvem XamarinGCM :

    Creating XamarinGCM project

  2. Dále zadejte název balíčku pro vaši aplikaci (v tomto příkladu je název balíčku com.xamarin.gcmexample) a kliknutím na Pokračovat zvolte a nakonfigurujte služby:

    Entering the package name

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

  3. Oddíl Zvolit a konfigurovat služby obsahuje seznam služeb Google, které můžete přidat do aplikace. Klikněte na Cloud Microsoft Zasílání zpráv:

    Choose Cloud Messaging

  4. Dále klikněte na POVOLIT SLUŽBU GOOGLE CLOUD MESSAGING:

    Enable Google Cloud Messaging

  5. Klíč rozhraní API serveru a ID odesílatele se pro vaši aplikaci vygenerují. Poznamenejte si tyto hodnoty a klikněte na TLAČÍTKO ZAVŘÍT:

    Server API Key and Sender ID displayed

    Chraňte klíč rozhraní API – není určený pro veřejné použití. Pokud dojde k ohrožení klíče rozhraní API, mohou neautorizované servery publikovat zprávy do klientských aplikací. Osvědčené postupy pro bezpečné používání 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 Console a vyberete svůj projekt. ID odesílatele můžete například zobrazit tak, že v horní části stránky vyberete projekt v rozevírací nabídce (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 tady 9349932736):

Viewing the Sender ID

Pokud chcete zobrazit klíč rozhraní API, klikněte na Api Manager a potom klikněte na Přihlašovací údaje:

Viewing the API key

Pro další čtení

  • RFC 6120 a RFC 6121 vysvětlují a definují rozšiřitelné Microsoft Zasílání zpráv a presence Protocol (XMPP).

Souhrn

Tento článek obsahuje přehled Microsoft Zasílání zpráv Google Cloud (GCM). Vysvětlila různé přihlašovací údaje, které slouží k identifikaci a autorizaci zasílání zpráv mezi aplikačními servery a klientskými aplikacemi. Znázorňuje nejběžnější scénáře zasílání zpráv a podrobně popisuje postup registrace aplikace pomocí GCM pro používání služeb GCM.