Salut !
Je voulais partager un truc avec toi, mettant mon nez dans Gladys V4 (top au demeurant, il me tarde de la mettre en prod chez moi), j’ai commencé à réécrire des integrations que j’avais en V3, et une était le module Free SMS, je ne crois pas qu’il était de moi… bref…
Donc j’ai réfléchi comment faire, et regarder comment marchait l’intégration Telegram, je voulais donc te soumettre ce que j’ai écrit chez moi ce week end…
En gros, Telegram c’est bien, mais pour moi par exemple, si je suis en vacance et que je veux recevoir une notif de sécurité (intrusion, incendie…) et que j’ai pas Internet, il me faut du SMS.
Donc, en regardant la lib message.sendToUser.js
, j’ai vu que l’appel a l’integration Telegram était codée en dur ici, j’ai donc tenté/réalisé une petite modif de ce style:
// We send the message to the favorite service
const smsService = this.service.getService('sms');
const telegramService = this.service.getService('telegram');
try{
// try to send through sms
await smsService.message.send(user.id, messageCreated);
}catch(err) {
// it may fails because of service does not exist or not configured
// if the service exist and the user had telegram configured
if (telegramService && user.telegram_user_id) {
// We send the message to the telegram service
await telegramService.message.send(user.telegram_user_id, messageCreated);
}
(bon on pourrait très bien envoyé par SMS ET par Telegram…)
Et j’ai écrit une intégration SMS.
Ne voulant pas faire une Intégration FreeSms dédiée à Free (et puis une pour Orange… etc) , j’ai élaboré un truc qui puisse à terme gérer plusieurs opérateurs, l’utilisateur devant choisir son pays et son opérateur.
Evidemment, je n’ai rien touché sur la partie discussions avec Gladys, le SMS ne le permettant pas.
Je voulais avoir ton sentiment, voir si tu avais pas déjà réfléchi à une autre méthode…
Je vais pousser mon code asap sur ma branche chez moi, et si tu veux y jeter un oeil …
Edit: ma branche GitHub - Jean-PhilippeD/Gladys at sms