Fórum Ajuda com WEB-PUSH #620868

20/12/2023

0

Olá. Estou enfrentando dificuldades em enviar minhas notificações push(web-push) para meus usuários inscritos. Segue código abaixo que estou utilizando para enviar a solicitação de envio.


 async function(properties) {
    
  const webpush = require(''web-push'');
  // Configurar os detalhes do VAPID
  const vapidDetails = {
    subject: ''mailto:traderelite7@gmail.com'',
    publicKey: properties.vapid_public,  // Certifique-se de que ''properties'' está acessível
    privateKey: properties.vapid_privat  // Corrigido ''vapid_privat'' para ''vapid_private''
  };

  webpush.setVapidDetails(
    vapidDetails.subject,
    vapidDetails.publicKey,
    vapidDetails.privateKey
  );

   // Exemplo de carga útil da notificação
   let payload = JSON.stringify({
       title: ''Exemplo de Notificação'',
       body: ''Esta é a mensagem da notificação.'',
       icon: ''https://cdn.icon-icons.com/icons2/2699/PNG/512/firebase_logo_icon_171157.png''
   });
    
    webpush.sendNotification(properties.subscription, payload);  
} 


Esse código acima, não consigo de forma alguma enviar notificação aos meus usuários inscritos. Por vezes, tenho que clicar 2 vezes seguidas para envio das 2 notificações. Ou seja clico na 1 vez não vai, clico mais 1 vez rapidamente e envia as 2 notificações
Samuel Andrade

Samuel Andrade

Responder

Posts

20/12/2023

Samuel Andrade

Olá. Estou enfrentando dificuldades em enviar minhas notificações push(web-push) para meus usuários inscritos. Segue código abaixo que estou utilizando para enviar a solicitação de envio.


 async function(properties) {
    
  const webpush = require(''web-push'');
  // Configurar os detalhes do VAPID
  const vapidDetails = {
    subject: ''mailto:traderelite7@gmail.com'',
    publicKey: properties.vapid_public,  // Certifique-se de que ''properties'' está acessível
    privateKey: properties.vapid_privat  // Corrigido ''vapid_privat'' para ''vapid_private''
  };

  webpush.setVapidDetails(
    vapidDetails.subject,
    vapidDetails.publicKey,
    vapidDetails.privateKey
  );

   // Exemplo de carga útil da notificação
   let payload = JSON.stringify({
       title: ''Exemplo de Notificação'',
       body: ''Esta é a mensagem da notificação.'',
       icon: ''https://cdn.icon-icons.com/icons2/2699/PNG/512/firebase_logo_icon_171157.png''
   });
    
    webpush.sendNotification(JSON.parse(properties.subscription), payload);  
} 


Esse código acima, não consigo de forma alguma enviar notificação aos meus usuários inscritos. Por vezes, tenho que clicar 2 vezes seguidas para envio das 2 notificações. Ou seja clico na 1 vez não vai, clico mais 1 vez rapidamente e envia as 2 notificações


Editei para uma melhor análise
Responder

Gostei + 0

26/06/2025

Tiago Candido

Fala! Seu código está no caminho certo para o envio de notificações web push(https://www.e-goi.com/br/notificacoes-web-push/), mas tem alguns pontos que podem estar causando problema:

Os pares de aspas estão duplicados no require(''web-push'') e nos outros campos com aspas duplas. O correto seria usar aspas simples ou duplas normais. Exemplo:


const webpush = require('web-push');
Parece que há um erro de digitação aqui:

privateKey: properties.vapid_privat
O correto provavelmente seria vapid_private.

Certifique-se de que properties.subscription contém um objeto de inscrição válido, no formato retornado por PushManager.subscribe() no client-side. Caso contrário, o sendNotification vai falhar.

E vale lembrar que o payload precisa respeitar o limite de tamanho (geralmente até 4KB). E se estiver testando no Chrome, garanta que o service worker está ativo e com permissão concedida para notificações web push.

Se continuar dando erro, posta aqui a mensagem retornada pelo sendNotification que dá pra afunilar mais a causa.

Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar