Intégration SMS

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.

image

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 … :wink:

Edit: ma branche GitHub - Jean-PhilippeD/Gladys at sms

Hello!

Cool! ça fait plaisir! :slight_smile:

Génial ça :slight_smile:

Effectivement, comme l’intégration telegram était la seule jusque-là, j’ai mis en dur le comportement.

Dans ton cas, si je comprend bien, tu veux recevoir un SMS seulement dans certain cas très précis, on est d’accord?

Dans ce cas, pourquoi ne pas juste avoir une intégration SMS qui ait une action dans les scènes “Envoyer un SMS” (action qui serait différente de l’action envoyer un message classique)

ça permettrait d’avoir un comportement spécial au SMS pour uniquement les cas ou l’utilisateur veut recevoir un sms, non?

Je pense que le cas du SMS est assez différent du use-case Telegram qui est une communication bi-directionnelle, là ou le SMS c’est vraiment juste de l’alerte

Tu en penses quoi?

PS: est-ce que ça te dérange si je passe ce post public? Je pense c’est toujours mieux quand les discussions sont publiques et que les autres développeurs puissent intervenir, je ne suis pas le seul mainteneur :smiley:

pas de soucis pour le mettre en public.

Concernant mon besoin, ajouter une option Envoyer un SMS serait intéressant, MAIS pas toujours optimal.

Dans mon cas justement, ma femme a un abonnement Free, donc je veux qu’elle recoive un SMS, moi je suis chez Orange, et j’ai pas/plus d’API pour recevoir un SMS, donc moi je souhaite recevoir une notif Telegram (c’est le comportemet sur ma V3 actuelle).

Ah… ou alors j’aurais Envoyer un SMS au user XXX + Envoyer un message au user YYY ? Ca marceherait ca ?

Exactement :slight_smile: Comme chacun à des besoins différents, le but c’est de créer un truc super flexible.

1 Like

C’est fait et poussé sur ma branche.

1 Like

Du coup ton intégration en est où ? ça marche bien ? :slight_smile:

Hésite pas à créer ta PR quand tu es prêt, et à me tagguer pour une review du code!

Oui ca fonctionne, il faut que j’écrive les tests avant.

1 Like