Sdílet prostřednictvím


Zasílání zpráv v cloudu Firebase

Firebase Cloud Messaging (FCM) 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 toho, jak FCM funguje, a vysvětluje, jak nakonfigurovat služby Google tak, aby vaše aplikace používala FCM.

Firebase Cloud Messaging hero image

Toto téma obsahuje základní přehled o tom, jak Firebase Cloud Messaging směruje zprávy mezi vaší aplikací Xamarin.Android a aplikačním serverem a poskytuje podrobný postup pro získání přihlašovacích údajů, aby vaše aplikace mohl používat služby FCM.

Přehled

Firebase Cloud Messaging (FCM) je multiplatformní služba, která zpracovává odesílání, směrování a fronty zpráv mezi serverovými aplikacemi a mobilními klientskými aplikacemi. FCM je následník služby Google Cloud Messaging (GCM) a je postaven na službách Google Play.

Jak je znázorněno v následujícím diagramu, FCM funguje jako zprostředkovatel mezi odesílateli zpráv a klienty. Klientská aplikace je aplikace s podporou FCM, která běží na zařízení. Aplikační server (poskytovaný vámi nebo vaší společností) je server s podporou FCM, se kterým vaše klientská aplikace komunikuje prostřednictvím FCM. Na rozdíl od GCM umožňuje FCM odesílat zprávy klientským aplikacím přímo prostřednictvím grafického uživatelského rozhraní oznámení konzoly Firebase:

FCM sits between the client app and an app server

Pomocí FCM můžou aplikační servery odesílat zprávy do jednoho zařízení, skupině zařízení nebo řadě zařízení, která jsou přihlášená k odběru tématu. Klientská aplikace může používat FCM k odběru podřízených zpráv ze serveru aplikace (například pro příjem vzdálených oznámení). Další informace o různých typech zpráv Firebase naleznete v tématu Zprávy FCM.

Firebase Cloud Messaging v akci

Když je podřízená zpráva odeslána do klientské aplikace ze serveru aplikace, odešle aplikační server zprávu na server připojení FCM od Googlu. Server pro připojení FCM pak zprávu přepošle na zařízení, na kterém běží klientská aplikace. Zprávy lze odesílat přes protokol HTTP nebo XMPP (Extensible Messaging and Presence Protocol). Vzhledem k tomu, že klientské aplikace nejsou vždy připojené nebo spuštěné, server připojení FCM vytvoří frontu a ukládá zprávy, odesílá je do klientských aplikací, jakmile se znovu připojí a zpřístupní. Podobně FCM zapíše upstreamové zprávy z klientské aplikace na aplikační server, pokud server aplikace není k dispozici. Další informace o serverech připojení FCM najdete v tématu O serveru služby Firebase Cloud Messaging Server.

FCM používá k identifikaci aplikačního serveru a klientské aplikace následující přihlašovací údaje a pomocí těchto přihlašovacích údajů autorizuje transakce zpráv prostřednictvím FCM:

  • ID odesílatele – ID odesílatele je jedinečná číselná hodnota, která se přiřadí při vytváření projektu Firebase. ID odesílatele slouží k identifikaci jednotlivých aplikačních serverů, které můžou odesílat zprávy do klientské aplikace. ID odesílatele je také číslo vašeho projektu; id odesílatele získáte z konzoly Firebase při registraci projektu. Příkladem ID odesílatele je 496915549731.

  • Klíč rozhraní API – klíč rozhraní API poskytuje aplikačnímu serveru přístup ke službám Firebase; FCM používá tento klíč k ověření aplikačního serveru. Tyto přihlašovací údaje se také označují jako klíč serveru nebo klíč webového rozhraní API. Příkladem klíče rozhraní API je AJzbSyCTcpfRT1YRqbz-jIwp1h06YdauvewGDzk.

  • ID aplikace – identita klientské aplikace (nezávisle na jakémkoli daném zařízení), která se registruje k příjmu zpráv z FCM. Příkladem ID aplikace je 1:415712510732:android:0e1eb7a661af2460.

  • Registrační token – Registrační token (označovaný také jako ID instance) je identita FCM 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 FCM při spuštění na zařízení. Registrační token autorizuje instanci vaší klientské aplikace (spuštěné na tomto konkrétním zařízení) pro příjem zpráv z FCM. Příkladem registračního tokenu je fkBQTHxKKhs:AP91bHuEedxM4xFAUn0z ... JKZS (velmi dlouhý řetězec).

Nastavení služby Firebase Cloud Messaging (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ů. Když v konzole Firebase vytvoříte nový projekt, vytvoří se soubor s přihlašovacími údaji s názvem google-services.json – přidejte tento soubor do projektu Xamarin.Android, jak je vysvětleno ve vzdálených oznámeních s FCM.

Následující části popisují, jak se tyto přihlašovací údaje používají při komunikaci klientských aplikací se servery aplikací prostřednictvím FCM.

Registrace v FCM

Než bude možné zasílání zpráv, musí se klientská aplikace nejprve zaregistrovat v FCM. Klientská aplikace musí dokončit kroky registrace uvedené v následujícím diagramu:

App registration steps diagram

  1. Klientská aplikace kontaktuje FCM, aby získala registrační token, předala ID odesílatele, klíč rozhraní API a ID aplikace FCM.

  2. FCM vrátí registrační token klientské aplikaci.

  3. Klientská aplikace (volitelně) 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í. Aplikační server může odeslat potvrzení zpět do klientské aplikace a indikovat, ž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). Klientská aplikace může obdržet nový registrační token, pokud dojde k ohrožení zabezpečení starého tokenu (příklad způsobu, jakým aplikace přijímá aktualizace registračních tokenů, najdete v tématu Vzdálená oznámení s FCM ).

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 se klientská aplikace odinstaluje ze zařízení, FCM to zjistí a automaticky upozorní aplikační server, aby odstranil registrační token.

Podřízené zasílání zpráv

Následující diagram znázorňuje, jak Firebase Cloud Messaging ukládá a předává podřízené zprávy:

FCM uses store and forward for downstream messaging

Když aplikační server odešle podřízenou zprávu do klientské aplikace, použije následující kroky, jak je uvedeno v předchozím diagramu:

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

  2. Pokud klientské zařízení není dostupné, server FCM uloží zprávu do fronty pro pozdější přenos. Zprávy se uchovávají v úložišti FCM po dobu maximálně 4 týdnů (další informace najdete v tématu Nastavení životnosti zprávy).

  3. Jakmile je klientské zařízení k dispozici, FCM zprávu přepošla do klientské aplikace na daném zařízení.

  4. Klientská aplikace obdrží zprávu z FCM, zpracuje ji a zobrazí ji uživateli. Pokud je zpráva například vzdálená oznámení, zobrazí se uživateli v oznamovací oblasti.

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

Podrobné informace o příjmu podřízených zpráv FCM v Androidu najdete v tématu Vzdálená oznámení s FCM.

Zasílání zpráv témat

Zasílání zpráv témat umožňuje serveru aplikace odeslat zprávu do více zařízení, která se přihlásila k určitému tématu. Zprávy témat můžete také vytvářet a odesílat prostřednictvím grafického uživatelského rozhraní oznámení konzoly Firebase. FCM zpracovává směrování a doručování zpráv témat pro přihlášené klienty. Tuto funkci lze použít pro zprávy, jako jsou upozornění na počasí, kurzy akcií a hlavní zprávy.

Topic messaging diagram

Následující kroky se používají v zasílání zpráv tématu (jakmile klientská aplikace získá registrační token, jak je vysvětleno výše):

  1. Klientská aplikace se přihlásí k odběru tématu odesláním zprávy k odběru FCM.

  2. Aplikační server odesílá zprávy tématu do FCM pro distribuci.

  3. FCM předává zprávy tématu klientům, kteří se přihlásili k odběru tohoto tématu.

Další informace o zasílání zpráv o tématu Firebase naleznete v tématu Zasílání zpráv společnosti Google v Systému Android.

Nastavení služby Firebase Cloud Messaging

Než budete moct ve své aplikaci používat služby FCM, musíte vytvořit nový projekt (nebo importovat existující projekt) prostřednictvím konzoly Firebase. Pomocí následujících kroků vytvořte projekt Firebase Cloud Messaging pro vaši aplikaci:

  1. Přihlaste se ke konzole Firebase pomocí svého účtu Google (tj. vaší adresy Gmailu) a klikněte na VYTVOŘIT NOVÝ PROJEKT:

    Create New Project button

    Pokud máte existující projekt, klikněte na importovat projekt Google.

  2. V dialogovém okně Vytvořit projekt zadejte název projektu a klikněte na VYTVOŘIT PROJEKT. V následujícím příkladu se vytvoří nový projekt S názvem XamarinFCM :

    Create a Project dialog

  3. V přehledu konzoly Firebase klikněte na Přidat Firebase do aplikace pro Android:

    Add Firebase to your Android app

  4. Na další obrazovce zadejte název balíčku vaší aplikace. V tomto příkladu je název balíčku com.xamarin.fcmexample. Tato hodnota musí odpovídat názvu balíčku vaší aplikace pro Android. Přezdívka aplikace může být také zadána do pole Přezdívka aplikace:

    Entering FCM Example as the app nickname

  5. Pokud vaše aplikace používá dynamické odkazy, pozvánky nebo ověřování Google, musíte také zadat podpisový certifikát ladění. Další informace o vyhledání podpisového certifikátu najdete v tématu Vyhledání podpisu MD5 nebo SHA1 úložiště klíčů. V tomto příkladu zůstane podpisový certifikát prázdný.

  6. Klikněte na PŘIDAT APLIKACI:

    Clicking the Add App button

    Klíč rozhraní API serveru a ID klienta se pro aplikaci vygenerují automaticky. Tyto informace se zabalí do souboru google-services.json , který se automaticky stáhne po kliknutí na PŘIDAT APLIKACI. Nezapomeňte tento soubor uložit na bezpečném místě.

Podrobný příklad přidání google-services.json do projektu aplikace pro příjem zpráv nabízených oznámení FCM v Androidu najdete v tématu Vzdálená oznámení s FCM.

Další materiály

Shrnutí

Tento článek poskytuje přehled služby Firebase Cloud Messaging (FCM). 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 scénáře registrace a podřízeného zasílání zpráv a podrobně popisuje postup registrace aplikace v FCM pro používání služeb FCM.