Notificações push para aplicativos de iPhone e Android

:information_source: Resumo Envia notificações push do Discourse para iOS ou Android através do seu próprio aplicativo
:hammer_and_wrench: Link do Repositório GitHub - Sprachprofi/discourse-fcm-notifications: Send Discourse push notifications through FCM to any custom app
:open_book: Guia de Instalação Como instalar plugins no Discourse

Funcionalidades

Se você tem um aplicativo que as pessoas podem usar para navegar no seu fórum Discourse, este plugin permitirá que seu fórum envie notificações push através do aplicativo. (Se você ainda não tem um aplicativo, mas gostaria de ter um, confira esta solução minimalista.)

Conveniente para usuários: quando um usuário recebe uma notificação push sobre uma mensagem privada, tocar nessa notificação abrirá seu aplicativo e exibirá diretamente essa mensagem privada. Esta é uma grande vantagem em relação ao uso de Notificações Pushover do Discourse, onde as notificações push abrem o aplicativo Pushover e não fica claro como chegar à mensagem. Por outro lado, Notificações Pushover é bom se você quiser notificações push sem um aplicativo.

Universal: usa o Google Firebase como camada de mensagens, para que todos os dispositivos iOS e Android possam receber essas notificações push, desde que o país não tenha banido o Google.

Configuração

  1. Instale e ative o plugin.
  2. Crie um projeto gratuito do Google Firebase para o seu aplicativo. Adicione o ID do projeto Firebase, o token e o json (com dados OAuth) às configurações do plugin no Discourse.
  3. Ajuste o código do seu aplicativo:
  • Inscreva o usuário ativo em notificações push enviando o token do dispositivo para SEU_FORUM.com/fcm_notifications/automatic_subscribe?token=… . Certifique-se de chamar isso toda vez que o token do dispositivo mudar.

  • Cancele a inscrição do usuário ativo chamando SEU_FORUM.com/fcm_notifications/automatic_subscribe?token=REMOVE

  • As notificações push terão o formato:

    'data': {
      "linked_obj_type" => 'link',
      "linked_obj_data" => <url para o post/mensagem referenciado na mensagem>,
    },
    'notification': {
      title: <algo como "USUÁRIO enviou uma mensagem privada para VOCÊ em TÓPICO">,
      body: <início da mensagem>,
    }
    

Portanto, você precisa exibir a notificação push com título/corpo e, ao tocar nela, deve abrir a URL de linked_obj_data em um navegador in-app. É isso que você precisa definir no código do aplicativo.

Exemplo de implementação

Você pode obter o código para um aplicativo minimalista, mas totalmente funcional, que funciona com este plugin aqui. (É a versão whitelabel de um aplicativo de produção que criamos, que precisava deste plugin.) Se você quiser apenas um aplicativo que exiba seu fórum, envie notificações push e lembre o login das pessoas / último tópico lido, você só precisa alterar a marca e enviá-lo para as Lojas de Aplicativos e pronto. Caso contrário, pode ser uma base.

Os lucros deste aplicativo financiarão a manutenção e o desenvolvimento futuro do plugin.

4 curtidas

A notificação push funciona com o aplicativo Discourse Hub?

O aplicativo Discourse Hub já vem com notificações push.

Mesmo para sites auto-hospedados?

1 curtida

Hmm… não tenho 100% de certeza, mas acho que não. Nesse caso, este plugin será bastante útil.

No momento não - qualquer aplicativo que você tenha requer modificação no código.

Não acho que será possível usar este plugin com qualquer aplicativo que você não possua, pois as notificações push dependem do compartilhamento da autenticação do Google (ou outra autenticação se não estiver usando o Google Firebase) entre o fórum e o aplicativo. Isso é para que o Google saiba quem é o responsável por potencialmente enviar notificações maliciosas ou de spam e possa encerrar a conta. Além disso, a autenticação do Google pode ser usada para fazer outras coisas com a conta do Google da pessoa, dependendo de como está configurada. Portanto, não acho que os criadores do aplicativo Discourse Hub (ou qualquer criador de aplicativo) queiram compartilhar sua autenticação do Google com todos que possuem um fórum Discourse auto-instalado, e é claro que eles não podem adicionar a autenticação do Google de todos ao código do aplicativo (nem pedir aos usuários finais que o façam após o download). Para notificações push do Google Firebase, o fórum e o aplicativo devem pertencer à mesma organização, não vejo como contornar isso.

Existe um aplicativo ativo que podemos testar?

Veja acima - você não pode instalar este plugin em seu fórum e conectá-lo a nenhum aplicativo existente porque isso significaria que o proprietário do aplicativo teria que compartilhar sua autenticação do Google com você.

Se você quiser ver uma implementação de exemplo, dê uma olhada em https://youtube.com/shorts/iGmTBmhpD4A?feature=share (o aplicativo mostrado é este código sem nenhuma modificação). Mas seu aplicativo pode ter uma aparência completamente diferente - o plugin apenas permite que seu fórum envie notificações push para seu aplicativo, como elas são exibidas depende de você.