Push Nativo Personalizado
Integrando um provedor personalizado de Notificação Push Nativa como parte da sua API do Operador
Fast Tracks suporta Firebase como provedor de Notificação Push Nativa, se o seu negócio precisar de um provedor que não faz parte da lista de provedores suportados, então você pode construir esta API.
Serviço de Notificação Push Nativa do Fast Track
O serviço de Notificação Push Nativa do Fast Track pode ser configurado para enviar solicitações de Notificação Push Nativa para os endpoints da API do Operador listados abaixo, o que permite ao Operador gerenciar o provedor de Notificação Push Nativa. Ele suporta o envio de mensagens e obter o status de entrega. O envio está disponível para solicitações de Notificação Push Nativa individuais ou em lote.
Os seguintes endpoints podem ser construídos como parte da sua API do Operador:
⬆️ POST /channels/push/single
⬆️ POST /channels/push/batch
O Operador pode então encaminhar essas solicitações para o provedor de Notificação Push Nativa para processamento e responder com as respectivas respostas.
Formato da API e respostas precisam ser formatados conforme descrito abaixo
É importante que os dados "meta" descritos abaixo sejam enviados de volta para o Fast Track via Webhook ou Polling para que os dados de conversão possam ser armazenados corretamente. Por favor, consulte os exemplos mostrados e as tabelas abaixo para maior esclarecimento.
Pré-Requisitos
- Informe o Fast Track se algum limite de taxa deve ser considerado. (Se você planeja implementar limite de taxa, entre em contato com o Fast Track antes, para que possamos orientá-lo sobre a implementação suportada)
- Informe o Fast Track se algum máximo de lote deve ser considerado.
- Forneça ao Fast Track quaisquer credenciais específicas para os provedores integrados (se necessário)
Enviar Notificação Push Nativa (Individual)
Uma solicitação de envio individual de Notificação Push Nativa conterá os dados de cada Notificação Push Nativa individual em solicitações separadas para a API.
Implementação do Endpoint
Implemente o endpoint no formato abaixo para suportar Notificação Push Nativa de envio individual através da API.
⬆️ POST <operator-api-endpoint-url>/channels/push/single
Cabeçalho da Solicitação
O cabeçalho da solicitação enviada contém um "X-Api-Key" que é um token necessário para autenticar as chamadas da API no endpoint. Este token precisa ser passado para o Fast Track para fazer essas solicitações.
Schema do Corpo da Solicitação
Consulte o seguinte exemplo de uma solicitação individual de Notificação Push Nativa enviada pelo Fast Track. A descrição de cada campo está listada na tabela abaixo.
Campos de nível superior
| Chave | Tipo | Descrição |
|---|---|---|
activity * | objeto | Objeto de contexto da atividade — veja sub-tabela abaixo |
title * | string | O título da notificação push |
body * | string | O texto do corpo da notificação push |
image_url | string | URL de uma imagem para exibir na notificação |
android | objeto | Configuração específica do Android — veja campos Android abaixo. Omitir se não utilizado |
ios | objeto | Configuração específica do iOS — veja campos iOS abaixo. Omitir se não utilizado |
web | objeto | Configuração específica de push web — veja campos Web abaixo. Omitir se não utilizado |
meta | objeto | Pares chave-valor personalizados definidos na atividade do CRM Fast Track |
campos activity
| Chave | Tipo | Descrição |
|---|---|---|
activity.id * | integer | Um identificador único da Notificação Push Nativa |
activity.brand_id * | integer | O identificador único da marca no Fast Track |
activity.user_id * | string | O identificador único do jogador |
activity.activity_id * | integer | O identificador único da atividade configurada no Fast Track |
activity.action_group_id * | integer | O identificador único do grupo de ação do qual a Notificação Push Nativa origina do Fast Track |
activity.trigger_hash * | string | Hash do gatilho |
activity.action_id * | integer | O identificador único da ação individual do Fast Track |
activity.origin | string | Rótulo de origem opcional para a atividade |
campos android — todos opcionais
| Chave | Tipo | Descrição |
|---|---|---|
priority | string | Prioridade de entrega da mensagem |
ttl | string | Duração de tempo de vida para a mensagem |
collapse_key | string | Chave usada para recolher mensagens pendentes |
restricted_package_name | string | Nome do pacote Android de destino |
icon | string | Nome do recurso do ícone de notificação |
color_rgb | string | Cor de destaque da notificação em formato hex |
sound | string | Som da notificação |
tag | string | Tag usada para substituir notificações existentes |
click_action | string | Ação acionada quando a notificação é tocada |
body_loc_key | string | Chave de localização para o texto do corpo |
body_loc_arcs | array de strings | Valores de substituição para body_loc_key |
title_loc_keys | string | Chave de localização para o título |
title_loc_args | array de strings | Valores de substituição para title_loc_key |
channel_id | string | Identificador do canal de notificação do Android |
campos ios — todos opcionais
| Chave | Tipo | Descrição |
|---|---|---|
badge | string | Contagem de badge do ícone do app |
category | string | Identificador de categoria da notificação |
thread_id | string | Identificador de thread para agrupar notificações |
sub_title | string | Subtítulo da notificação |
loc_key | string | Chave de localização para o texto do corpo |
loc_args | array de strings | Valores de substituição para loc_key |
title_loc_key | string | Chave de localização para o título |
title_loc_args | array de strings | Valores de substituição para title_loc_key |
sub_title_loc_key | string | Chave de localização para o subtítulo |
sub_title_loc_args | array de strings | Valores de substituição para sub_title_loc_key |
action_loc_key | string | Chave de localização para o rótulo do botão de ação |
launch_image | string | Nome do arquivo da imagem de inicialização mostrada quando o app abre |
campos web — todos opcionais
| Chave | Tipo | Descrição |
|---|---|---|
icon | string | URL do ícone da notificação |
badge | string | URL do ícone de badge |
dir | string | Direção do texto. Valores: ltr | rtl | auto |
lang | string | Tag de idioma da notificação (ex: pt) |
renotify | string | Se deve notificar o usuário após substituir uma notificação existente |
require_interaction | string | Se a notificação deve permanecer até que o usuário interaja com ela |
silent | string | Se a notificação deve ser silenciosa |
tag | string | Tag usada para substituir notificações existentes |
timestamp | integer | Timestamp Unix representando o tempo da notificação |
vibrate | array de strings | Padrão de vibração como um array de durações em milissegundos |
link | string | URL para abrir quando a notificação é clicada |
Respostas Esperadas
A API do Operador deve retornar as respostas para cada mensagem individual de Notificação Push Nativa respectivamente para evitar armazenamento não relacionado de dados de Notificação Push Nativa.
Sucesso Resposta JSON HTTP 200-299
O push_id será um identificador único gerado pela API do Operador que permite ao Fast Track identificar aquela mensagem específica de Notificação Push Nativa para atualizar seu status de entrega após ser enviada.
ERRO Resposta JSON não-200
Respostas com erro estão tipicamente associadas com códigos de status HTTP 400s ou 500s. A resposta deve conter um campo "error" com uma descrição para mostrar o que deu errado e auxiliar na resolução de problemas.
As respostas da API do Operador serão tratadas de forma diferente dependendo da classe do código de status HTTP. A tabela abaixo dá um resumo de como os