IFTTT-2-API utiliser des fonctions pour transformer vos données4 minute(s) de lecture

Pour faire suite à mon article concernant IFTTT et la possibilité de faire communiquer ce service à tout autre exposant une API sur le web en faisant appel à IFTTT-2-API, je vous propose aujourd’hui une petite astuce très intéressante.   Elle vous permettra de tirer un peu plus partie de ce programme en vous ouvrant de nouveaux horizons.  Si les données reçues de IFTTT ne vous conviennent pas tout à fait et que vous souhaitez les retravailler avant d’appeler l’API, sachez que c’est tout à fait possible.  Vous pouvez exploiter toute la puissance de Google Script pour cela.

Pour illustrer cette fonctionnalité nous allons prendre comme exemple une mise en oeuvre amusante.  Imaginez que vous souhaitez faire parler votre Lapin Karotz à la demande.  Une manière simple de le faire est d’envoyer la phrase à dire par le lapin par mail.  IFTTT permet de recevoir des mails et d’en communiquer le contenu à IFTTT-2-API.  IFTTT-2-API permet de communiquer ces données à PushingBox qui sera à même de faire parvenir la phrase souhaitée à votre lapin communicant Karotz.

La cinématique sera donc:

Mail => IFTTT => IFTTT-2-API => PushingBox => Karotz

Lorsque le lapin Karotz parle je souhaite qu’il annonce en premier qui est la personne qui m’envoie le mail avant de prononcer le contenu du message reçu.  IFTTT ne me permet pas de faire des transformations de ce style.  Encore une fois on va utiliser Google Script pour nous y aider.

Voici comment faire:

  • mettre en oeuvre IFTTT-2-API (si ce n’est pas déjà fait)
  • être abonné à PushingBox
  • avoir installé sur votre lapin Karotz l’application PushingBox
  • avoir paramétré PushingBox pour pouvoir discuter avec votre lapin Karotz
  • créer le scénario PushingBox permettant de relier ce service avec votre Lapin de la manière suivante:
  • relever dans PushingBox le DeviceID du scénario
  • Ouvrir maintenant IFTTT-2-API et renseigner le code de votre scénario dans l’onglet “Param” en face de la référence “devid”
  • aller dans l’éditeur de scripts

Vous pouvez y écrire toute les fonctions que vous souhaitez et les sauvegarder dans l’éditeur de script dans le fichier “fonctions.gs” (ou tout autre fichier).

Je vous propose la fonction très simple suivante:

/*associe un nom à un mail*/
function messagePourKarotz (mail,texte)
{
  var Expediteur= "inconnu";

  if (mail == "titi@toto.fr")
  {
    Expediteur = "Hervé";
  }
  return "Message de " + Expediteur + ": " + texte;
}

Il vous faut adapter le script ci-dessus en y remplaçant votre adresse mail (et votre prénom sauf si vous vous appelez également Hervé)

  • Copier la fonction précédente, la copier dans le fichier “fonctions.gs”, l’adapter (adresse mail et nom) puis sauvegarder la modification.

C’est tout pour IFTTT-2-API!

Petite pause dans le tutoriel afin de vous faire part d’une petite astuce pour ne pas tourner en rond trop longtemps si Google script ne le fait pas tout seul:

  • Dans la feuille IFTTT-2-API vérifier que la fonction est présente parmi celles affichée.
  • Si ce n’est pas le cas il vous faut rafraîchir la liste manuellement

La parenthèse est maintenant terminée.  Le tutoriel peut reprendre.

  • Aller maintenant dans IFTTT.com. Il ne vous reste plus qu’a paramétrer votre règle IFTTT de la manière suivante:

Le champ “Formatted Row” contiendra la formule suivante:

PushingBox ||| =messagePourKarotz("{{From}}";" {{Body}}")

Enregistrez votre règle et s’en est terminé pour la mise en place.

Lorsque la donnée arrivera dans la feuille de calcul IFTTT-2-API, elle sera remplacée par le résultat de la fonction!

Pour vous en convaincre, si vous envoyez le mail suivant:

  • Destinataire : trigger@ifttt.com
  • Sujet : #lapin
  • Message : Je pars et serais là dans 10 minutes.

La phrase communiquée au lapin Karotz sera :

Message de Hervé:  Je pars et serais là dans 10 minutes.

En effet elle aura subit le traitement de la fonction “messagePourKarotz” avant d’être communiquée au Karotz!

Conclusion

Cet exemple est simpliste mais a pour but de vous présenter cette petite astuce qui a le mérite… d’être très puissante.  Je tenais à vous en faire part car je suis sûr qu’elle vous permettra de vous aider à obtenir la fonction souhaitée tout en vous ouvrant de nouvelles possibilités.  Vous pouvez bien évidement utiliser toutes les fonctions standard des Feuilles de Calculs Google Drive ou bien toutes celles au vous aurez écrites spécifiquement.

Cela permet de faire des choses non prévues par IFTTT ni par le Karotz.  On peut imaginer par exemple le fait de permettre l’annonce de la phrase uniquement si l’on est à la maison et si l’on est pas encore couchés.  Arriver à ce résultat est possible en utilisant cet appel des fonctions personnelles.  Il ne reste plus qu’a coder un peu plus… 😉

5 Comments

  1. pikat said:

    Super ça marche (bon j’avoue j’ai bien galéré quand même !!!!!) je suis un peu une quiche mais bon…. ça marche c’est le principal. Par contre le Karotz me lit la phrase au bout de 10 voire 15 minutes après l’envoi du mail ??? C’est normal ? En tout cas merci de cet excellent tuto comme d’hab !!!

    29 mai 2013
    Reply
    • Avatar photo Hervé said:

      As-tu bien pris le déclencheur ayant pour logo l’enveloppe blanche sur fonds bleu comme dans l’article? Là ça devrait être direct. Si tu as choisi le déclencheur Gmail dans ce cas il y a bien une prise en compte du mail tous les 15 minutes.

      29 mai 2013
      Reply
  2. pikat said:

    Oui j’ai bien celui avec l’enveloppe sur fond bleu, les mêmes paramètres que toi…. par contre un autre problème le karotz ne me lit pas le mail mais dollar texte dollar ????
    J’ai bien le suivi d’activité dans data de la feuille de calcul (réception pushingbox avec mon message) et là soit rien ne se passe ou alors le karotz dit dollar texte dollar au bout de 10 minutes ???? Si je veux qu’il dise mon message il faut que celui-ci soit écrit dans les paramètres de mon scénario karotz sur pushingbox….

    30 mai 2013
    Reply
    • Avatar photo Hervé said:

      Occupons-nous de PushingBox d’abord.
      Lorsque tu y a paramétré ton scénario PushingBox dans la zone message tu as bien: $texte$
      Quelle est l’URL d’appel à pushingBox que te génère IFTTT-2-API?

      30 mai 2013
      Reply
  3. pikat said:

    Pour le scénario PushingBox dans la zone message j’ai bien: $texte$ (d’ailleurs c’est ce que me lit le karotz 10 minutes après avoir envoyé le mail…)
    Je ne comprends pas ta dernière question à propos de l’url générée par IFTTT-2-API ?
    Dans l’onglet data j’ai exactement la même chose que toi :
    pushingbox en A1 et Message de Cédric: ******* en B1
    L’url dans les paramètres pour pushingbox est
    http://api.pushingbox.com/pushingbox?
    et en face de devid j’ai l’id du scénario vCF***********
    J’ai dû merdouiller quelque part…..

    30 mai 2013
    Reply

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Prouvez que vous êtes humain: * Time limit is exhausted. Please reload CAPTCHA.