|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
| Notif push WinDev Mobile 2025 : Erreur FireBase !!!! |
| Débuté par ChouLAGH, 15 oct. 2025 18:06 - 2 réponses |
| |
| | | |
|
| |
Membre enregistré 259 messages |
|
| Posté le 15 octobre 2025 - 18:06 |
Bonjour à tous, Je sais que le sujet a été abordé plusieurs fois dans le forum, mais vraiment je ne trouve pas l"erreur.
J'ai une appli Android en Windev Mobile 2025 qui réceptionne le token et l'envoie à un WebService SOAP qui le stocke dans une BD Hyperfile hébérgée sur PCS Cloud.
Lorsque l'appli Android demande au WS d'envoyer une notif, le WS renvoie une erreur : =========================
Chouaib LAGHLAM <claghlam@gmail.com> 17:54 (il y a 0 minute) À moi
Erreur lors de l'envoi du message Appel WL : Traitement de 'Procédure globale EnvoieAndroid' (ProcéduresGlobales.EnvoieAndroid), ligne 69 Fonction 'NotifPushEnvoie', syntaxe 2
Que s'est-il passé ? Le service Firebase n'a pas pu traiter la notification (vérifiez que les tokens identification sont valides)
Code erreur : 690049 Niveau : erreur non fatale
Module : wd300device64.dll (01A304061 - 30.0.340.0)
Informations de débogage : Fonction (69,29) Informations supplémentaires : EIT_PILEWL : Procédure globale EnvoieAndroid (ProcéduresGlobales.EnvoieAndroid), ligne 69 EIT_COMPOSANT : () EIT_DATEHEURE : 15/10/2025 17:16:27 EIT_TYPE_WDFILE : <7> EIT_IDCODE : <458752> ===================================
J'ai deux soupçons : 1) Le token n'est pas bien enregisté dans la BD : - j'ai essayé une rubrique de type "son, image, binaire", sous-chaine=chaine binaire : ca ne marche pas - j'ai essayé une rubrique de type chaine,de longueur 500 : ca ne marche pas.
2) je soupconne la confusion de fichiers clés : - le fichier "google-services.json", je l'ai mis dans l'assistant de génération, - Le fichier clé privée généré dans "comptes de service" de Firebase avec un nom "medical-..........-firebase-adminsdk-fbsvc-.......json Je le charge dans le WS. Voici le code de la proc du WS : ============================ PROCÉDURE EnvoieAndroid(sTypeUser est une chaîne,sMessage est une chaîne, sContenu est une chaîne, sTitre est une chaîne, sTexteDeroulant est une chaîne, bVibration est un booléen, ... bLED est un booléen, bSupprimable est un booléen, bApplicationActive est un booléen) : chaîne
// Variables tabIdentifiantsAEnvoyer est un tableau de Buffers tabIdentifiantsAEnvoyerTemp est un tableau de Buffers ListeReponse est un tableau de Buffer bufIdentifiant est un Buffer tabTokensInvalides est un tableau de Buffer nNbTokensInvalides est un entier leToken est un Buffer // clé privé FireBase pour envoi de notif. // 1. Obtenir le répertoire d'exécution actuel du WebService sRepCourant est une chaîne = fRepEnCours()
// sRepCourant vaudra : "D:\Web\WebServices\.....WS\......._WEB"
// 2. Remonter au répertoire parent (où se trouve le fichier JSON) sRepClePrivee est une chaîne = fRepParent(sRepCourant)
// 3. Construire le chemin complet du fichier JSON sNomFichierCle est une chaîne = "medical-.........-firebase-adminsdk-fbsvc-......json"
scheminClepriveeFireBase est une chaîne = fConstruitChemin(sRepClePrivee, sNomFichierCle) SI fFichierExiste(scheminClepriveeFireBase)=Faux ALORS RENVOYER "ce fichier n'existe pas: " FIN // ================================ // TEST SIMPLE DE NOTIFICATION : A SUPPRIMER // ================================ // récupérer tokens à notifier POUR TOUT EnregTokens // Log reception token leToken=EnregTokens.token
tabIdentifiantsAEnvoyer.Ajoute(leToken) FIN // notification maNotif est un Notification // Titre maNotif.Titre = "Titre notif" // // // Son Android maNotif.Son = "" // // // Icône maNotif.Icone = "" // mettre ici l'icône pour la notification // // // Groupe des notifications maNotif..Groupe = "Push" // // // Texte déroulant maNotif.TexteDéroulant = "Déroulant" // // // Options maNotif.Vibration = Vrai maNotif.AffichageLED = Vrai maNotif.Supprimable = Vrai// maNotif.ActiveApplication = bApplicationActive
// // envoi notif
SI PAS NotifPushEnvoie(maNotif,tabIdentifiantsAEnvoyer,fChargeTexte(scheminClepriveeFireBase),tabTokensInvalides,gnTypeNotificationAndroid) ALORS RENVOYER "Erreur lors de l'envoi du message" + RC + ErreurInfo(errComplet) SINON RENVOYER "Notif OK" FIN ================================= JE BLOQUE DEPUIS PLUSIEURS JOURS DESSUS.
Merci de votre aide.
-- Chouaïb |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 259 messages |
|
| Posté le 15 octobre 2025 - 18:26 |
En attendant une réponse de quelqu'un, j'ai stocké le token en rubrique chaine et je l'affiche. ça donne : Taille token : 390 ZE4AAF9M............FdnAAA=
-- Chouaïb |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 259 messages |
|
| Posté le 21 octobre 2025 - 12:42 |
Bonjour, j'ai enfin un début de réponse à mon problème, parès avoir contacté le Support technique. La piste : Firebase veut absolument que la variable de type Notification ait une valeur dans la propriété groupe. Exemple : manotif.Groupe="defaut" A quoi elle sert ? Si vous envoyez plusieurs notifs à un mobile qui est éteint ou non joignable, lorsque le mobile se connecte et que les norifications non reçues sont du même groupe : seule la dernière est affichée. Exemple : gestion des commandes : vous envoyez "commande en cours", "commande validée", "commande expédiée" seule la dernière est affichée
Mais le Service technique demande de mettre à jour mon WinDev Mobile 2025 et le serveur d'application WebDev pour passer au Update 5. J'attends que ce update soit validée niveau 2 pour retester.
J'espère que cela servira
-- Chouaïb |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|