Firebase Cloud Messaging

Firebase Cloud Messaging (FCM) je bezplatná služba od Google, která umožňuje odesílat push notifikace a datové zprávy do mobilních aplikací (Android, iOS) a webových prohlížečů. Napojit se na FCM lze jednoduše pomocí webhooků ve Flow kampani. Níže si ukážeme, jak lze tuto službu v Samba.ai zprovoznit.

Celý proces sestává ze 2 kroků:

  1. Vygenerování autentizačního souboru z vašeho FCM projektu a jeho konfigurace v Samba.ai.
  2. Definice webhook uzlu ve Flow kampani.

Autentizace FCM projektu

Pro úspěšné propojení Samby a FCM je třeba do Samby nahrát tzv. autentizační soubor ve formátu JSON. Níže naleznete návod, jak takový soubor z vašeho FCM účty vygenerovat.

Více projektů ve FCM

Pokud máte ve FCM více projektů, můžete si je všechny pro komunikaci ze Samby autentizovat. Pro každý takový projekt je třeba vygenerovat autentizační JSON soubor zvlášť. Při následném vytváření webhook uzlů je třeba vždy upravit konfiguraci podle toho, s jakým FCM projektem má uzel komunikovat.

  1. Otevřete si Firebase konzoli na https://console.firebase.google.com/, vyberte si váš projekt a běžte do sekce Settings > Service accounts.
  2. Proklikněte se volbou pod „All service accounts“ – * service accounts.
  1. Tím se dostanete do Google Cloud Console. Vyberte vlevo nahoře sekci Service Accounts. Zde vyberte možnost +Create service account.
  1. Vyplňte Service account name např. jako „Samba.ai testing“ a klikněte Create and continue.
  1. V sekci Permissions vyhledejte v poli Role práva Firebase Cloud Messaging API Admin.
  1. Klikněte na Done.
  1. V seznamu Service accounts nyní klikněte u právě vytvořeného účtu na Actions > Manage keys.
  1. Vyberte Add key > Create new key.
  1. V modálním okně ponechte volbu JSON a potvrďte klikem na Create.
  1. Prohlížeč vyvolá automaticky stažení JSON souboru. Tento soubor nám prosím zašlete na support@samba.ai. Náš tým provede konfiguraci vašeho Samba.ai účtu a předá vám základní parametry pro definici vašeho webhook uzlu (viz níže).

Napojení na FCM skrze Flow kampaň

Příprava dat

Aby bylo možné odeslat zprávu příjemci, je potřeba mít k dispozici jeho FID (Firebase Installation ID) v rámci vlastních zákaznických parametrů v zákaznickém feedu. Parametr doporučujeme pojmenovat jednoduše, např. jen „fid“. Referenci na tento parametr uvedete v těle požadavku webhooku viz dále. Do parametru je třeba uvést pouze 1 hodnotu. 

Definice webhook uzlu

Poté, co nám zašlete váš autentizační JSON soubor z vašeho FCM projektu, vám vytvoříme vzorový webhook uzel s napojením na váš konkrétní projekt. Pokud byste potřebovali uzel nastavit znovu, doporučujeme využít kopírování daného uzlu nebo celé Flow kampaně. Níže naleznete hodnoty pro váš uzel, které musí napojení na FCM splňovat.

Basics

  • Method: POST

  • Request URL: https://fcm.googleapis.com/v1/projects/PROJECT_ID/messages:send

    • Zde je třeba za PROJECT_ID doplnit konkrétní ID vašeho FCM projektu.

  • Authentication: Bearer token

  • Token: {{ dynamic.[0].access_token }}

  • Pre-request: ON

Pre-request

  • Method: POST

  • URL: https://oauth2.googleapis.com/token

  • Format: Multipart/Form-Data

  • Cache response: 1 Hour
  • Part 1

    • Format: zvolte Custom a vyplňte: text/plain

    • Part name: grant_type

    • Filename: parameter 

    • Body

      • urn:ietf:params:oauth:grant-type:jwt-bearer

  • Part 2
    • Format: zvolte Custom a vyplňte: text/plain

    • Part name: assertion

    • Filename: parameter

    • Body

      • Viz snippet níže, ve kterém je třeba podle vašeho autentizačního JSON souboru aktualizovat následující hodnoty:
        • iss: CLIENT_EMAIL je  client_email z vašeho autentizačního JSON souboru
        • sign: PROJECT_AUTHENTICATION_ID je hodnota, která vám bude sdělena po předání autentizačního JSON souboru
{{~ let "iat" (mul (div (now) 1800000 ) 1800) ~}} 
{{~ let "exp" (add iat 3600) ~}}
{{~
jwt-create

c:iss="CLIENT_EMAIL"
c:scope="https://www.googleapis.com/auth/firebase.messaging"
c:aud="https://oauth2.googleapis.com/token"
c:iat=iat
c:exp=exp

alg="rs256"
sign="PROJECT_AUTHENTICATION_ID"
~}}

Payload

  • Batch sending: OFF

  • Request format: JSON

  • Body

{{~ let "fids" (split customers.[0].parameters.FID) ~}} 
{
"message": { {{! This comment will not show up in the output}}
"fid": "{{~ fids.[0] ~}}",
"notification": {
"title": "Notification title",
"body": "Notification body"
},
"android": {
"priority":"high",
"notification": {
"title": "android title",
"body": "android body",
"sound": "default"
}
}
}
}

Příklad těla požadavku je pro případ, že se váš vlastní zákaznický parametr jmenuje FID a je v něm uvedeno vícero hodnot FID oddělených čárkami. Tato konstrukce zajistí, že se použije vždy jen první FID v rámci tohoto parametru pro daného zákazníka.

Pokud název zákaznického parametru obsahuje např. mezery, je třeba jej definovat následovně:

{{~ let "fids" (split (lookup customers.[0].parameters "Customer FID")) ~}}

Testovací zpráva

Kvůli speciálním požadavkům během autentizačního procesu nelze otestovat odeslání zprávy klasickým odesláním testovacího požadavku webhooku. Místo toho je třeba spustit celou Flow kampaň s tím, že:

  • Ve Flow kampani ponecháte ideálně pouze 1 uzel a to ten webhookový s napojením na FCM.
  • Před tento uzel vložíte segmentační uzel, který zajistí, že součástí vyhodnocení bude pouze 1 zákazník.
  • V těle požadavku si dočasně namísto dynamického vkládání FID vložíte staticky váš testovací FID.

Pozor na formát komentářů v těle požadavku. Aby se zachoval validní výstupní JSON, doporučujeme používat pouze komentáře v následujícím tvaru vždy na konci řádku (nevkládat nové/prázdné řádky):

{{! This comment will not show up in the output}}

Původní podoba při dynamickém vkládání FID:

Podoba pro účely testovací zprávy:

Spuštění kampaně

Při vyhodnocování Flow kampaně platí jejich základní pravidla jako pro jakékoli jiné webhook uzly. To znamená, že:

  • Jednotlivé webhook zprávy jsou v rámci jedné Flow kampaně deduplikovány přes zákaznické ID tak, aby se zamezilo opakovanému zaslání zprávy téhož druhu jednomu zákazníkovi.
  • Pokud by mělo více zákazníků definován stejný FID, systém toto nijak neřeší a bude na stejné zařízení odesláno více zpráv.

Vyhodnocení kampaně

Po odeslání kampaně jsou k dispozici statistiky, které jsou běžné dostupné pro uzel webhook.

Pro detailnější vyhodnocení doporučujeme využít Google Analytics.

 

 

Upraveno 7 října, 2026

Byl pro vás tento článek užitečný?

Mohlo by vás zajímat