betagouv / recosante-api

Un service public numérique de recommandations d'actions pour réduire l'impact de l'environnement sur sa santé.
https://betagouv.github.io/ecosante/
MIT License
6 stars 2 forks source link

Ajouter la possibilité de recevoir les indicateurs via notifications web #271

Closed florianpanchout closed 2 years ago

florianpanchout commented 2 years ago

Sur la base de #270, ajouter la possibilité de recevoir des notifications web plutôt que des mails, contenant les indicateurs choisis sans les détails ni les recommandations et linkant vers le dashboard de la ville.

florianpanchout commented 2 years ago

J'ai repris les modifications proposées sur la branche recuperation_application_server_key.

J'ai ajouté un listener pour le push. Pour l'instant j'attends comme variables :

J'ai ajouté une page pour tester une notification en front mais je ne suis pas sur que ça t'aide beaucoup en back

l-vincent-l commented 2 years ago

J’ai ajouté sur la page de test d’envoi de newsletter l’envoi des notifications web.

Je ne reçois pas d’erreur de la part du serveur de notifications, mais je ne vois pas non plus apparaitre la notification sur l’application.

Je ne sais pas du tout comment débugguer ça, si tu peux me pointer sur une façon de le faire je suis preneur.

florianpanchout commented 2 years ago

Ça marche ! Je regarde si j'arrive à trouver quelque chose et on en reparle demain après le standup si ça te va

Je l'enlève de priorité (parce qu'on en a besoin pour jeudi et pas mercredi)

florianpanchout commented 2 years ago

@l-vincent-l Mon expérience utilisateur s'arrête au clic sur mon email dans le datalist :/ #div_user reste vide (et en display: none)

l-vincent-l commented 2 years ago

:cry: tu as un appel réseau à GET /users/uid/ ?

florianpanchout commented 2 years ago

Nope. Je clique sur la suggestion, l'input se rempli et c'est tout

florianpanchout commented 2 years ago

Quelle est le format de data dans https://github.com/betagouv/recosante-api/blob/main/ecosante/newsletter/tasks/send_webpush_notifications.py ?

Si on mets un objet statique du style

{
    "title": "Recosante"
    "body": "test",
    "link: "https://recosante.beta.gouv.fr"
}

ça passe toujours pas ?

florianpanchout commented 2 years ago

(est ce que tu as bien le bon Service Worker ? Il faut le desinstaller ET vider le cache de l'application sinon il ne se mettra pas à jour)

Si dans https://recosante.gtsb.io/sw.js tu ne vois rien qui parle de push à la fin c'est que ton cache te sert l'ancien

florianpanchout commented 2 years ago

J'ai une 500 lorsque j'envoie un POST à https://staging.api.recosante.beta.gouv.fr/users/o96mGLm8

avec

{
    "indicateurs_media":["notifications_web"],
    "webpush_subscriptions_info":"{\"endpoint\":\"https://fcm.googleapis.com/fcm/send/cijfalUoQG4:APA91bHVycLDBVOO32SUxNfKWu7Xjshb-6o7NHNa4OwMH_Zm82jRtMVRoubKoRyLGi97hMdKNNX2ZBZldtkQlvKu0Ziq8DBCqlzSqsfFzI6-50NI61XnQ5enMvT1BxeSYsjjEMBCO851\",\"expirationTime\":null,\"keys\":{\"p256dh\":\"BKYdaBoOmsfeC1KI6_PClwZhdxWvNV1RvLvXRjPITNsP1VsHf4w4LiMwMYHBWGP7ouMJzltO3ZrVDMGthIGnUQs\",\"auth\":\"lk1Q18SEM4aCecGojD-i-g\"}}"
}
florianpanchout commented 2 years ago

Deux trucs (testé sur le staging) :

l-vincent-l commented 2 years ago

Dans le test tu peux changer l’indicateur normalement ça fonctionne. Et j’ai fixé l’URL

florianpanchout commented 2 years ago

Ah oui je pensais que ça prenait l'indice de la ville par défaut. C'est bon pour moi !

l-vincent-l commented 2 years ago

Normalement ça prend l’indice de la ville de la personne sélectionné. Tu as testé avec quelle adresse ?