Prérequis: Android

Création d'une recette IFTTT pour recueillir les SMS des utilisateurs et les transférer vers le serveur Bullit.

Recette IFTTT

C’est quoi IFTTT ?

IFTTT est une application qui permet de brancher 2 services ensemble: lorsqu’il se passe un événement sur le service A, le service B réagit automatiquement en effectuant une tache que vous avez défini.

IFTTT veut dire “If THIS Then THAT”, que l’on pourrait traduire assez librement par: si il se passe ceci alors fait cela. Nous allons donc définir un événement déclencheur (THIS) qui provoquera l’exécution d’une action (THAT). Notre événement est la réception de SMS et notre action sera de transférer ce message vers Bullit.

Avertissement: IFTT est une application Android ET iphone. Malheureusement il semblerait que les fonctionnalités de déclenchement liées à la réception de SMS ne soient pas disponible avec les iphones ... Ceci ne demande qu'à être contredit ! Si vous connaissez la marche à suivre n'hésitez pas à nous la communiquer !

Pour commencer vous devrez créer un compte sur IFTTT et installer leur application IF sur votre mobile.

If this then that

Lors de votre première connexion une petite démo vous montrera comment va se dérouler la suite des événements. Une fois ceci fait, vous allez créer une recette dédiée à Bullit en vous rendant dans la rubrique “My recipes” puis en cliquant sur le gros bouton “Create a recipe” (https://ifttt.com/myrecipes/personal/new).

Toute la phase de création de votre recette se passera sur cette page. Comme lors de la démo, la phrase “if this then that” vous accompagnera au fil des différentes étapes. Pour commencer, cliquez sur this !

1 - Choose Trigger Channel

Nous allons mettre en place notre événement déclencheur, la réception sur votre mobile d’un SMS. Une liste impressionnante de services apparaît avec une barre de recherche au dessus.

Dans la barre de recherche des triggers saisissez “sms” et choisissez le channel Android SMS

2 - Choose a Trigger step

Plusieurs type de déclencheur vous sont proposés, cliquez sur Any new SMS received.

3 - Complete Trigger Fields

il suffit de cliquer sur Create Trigger

4 - Choose Action Channel

Comme lors de l’étape 2, tous les services disponible sont listés. Nous allons sélectionner le service Maker puis connecter ce service. Il vous suffit de valider la connexion.

5 - Choose an Action

Une seule action est disponible mais qui permet toutes les excentricités: Make a web request

6 - Complete Action Fields

La création de notre action est sans doute la plus importante. Il vous faudra remplir le formulaire comme sur la capture d’écran, en adaptant le champ URL et le champ Body à votre installation Bullit

Recette IFTTT

  • URL :
    Il s’agit de l’adresse public qui permet de poster des messages à votre Bullit. Dans notre exemple il s’agit d’une installation sur le service Heroku. Vous n’avez que le nom de domaine à modifier. Si votre Bullit n’a pas de nom de domaine propre, vous pourrez renseigner l’adresse IP et le port que vous avez défini lors de l’installation: http://252.252.252.252:8080/messages/sms/

  • Method :
    Sélectionnez la méthode POST

  • Content type :
    Choisissez application/json

  • Body :

{"text":"{{Text}}", "sender":"{{FromNumber}}", "grabber":"0606060606", "tag":"VotreTokenAutogénéréParHerokuOuQueVousAvezDéfiniVousMeme"}

Le champ Body contient toutes les informations au format JSON du SMS que nous allons envoyer à Bullit. Vous devez impérativement adapter les paramètres grabber et tag à votre installation:

  • grabber :
    Il s’agit du n° de téléphone du mobile qui qui sert à la captation et qui permet de cibler sur quel Wall les SMS reçus apparaîtront
  • tag :
    Il correspond au paramètre PHONE_TOKEN que vous avez défini dans votre fichier de configuration config.py. Si votre Bullit a été installé en mode automatique sur Heroku, ce token a été auto-généré et vous pourrez le retrouver dans les settings de votre dashboard Heroku.

7 - Create and connect

Dernière étape de notre recette: lui trouver un nom :)

Vous pouvez aussi décider ou pas de recevoir une notification à chaque fois que l’action est déclenchée. Il est préférable de décocher cette option une fois que votre recette fonctionne. Elle fait double emploi avec la réception des SMS et vous pouvez vous en passer.

Enfin, vous pouvez cliquer sur Create recipe pour finaliser la création.

Utilisation

Une fois votre recette créée il faudra vous assurer que celle ci est active sur votre mobile (il vous faudra installer l’application et vous connecter à votre compte préalablement)


Réception des SMS par le serveur

Pour pouvoir recevoir des SMS l’adresse IP du serveur de votre application doit être accessible depuis une autre machine (LAN, serveur distant, Heroku, …) Le grabber, quel qu’il soit, doit être en mesure d’envoyer les SMS reçus au serveur, cela ne pourra donc pas marcher avec une adresse IP du type 127.0.0.1

Pour tester en local avec Werkzeug, vous devrez passer des paramètres au lanceur run.py et spécifier l’adresse IP et le port que vous désirez utiliser:

(env) ~/bullit $ python run.py -b 192.168.0.11

N’oubliez pas d’adapter le paramètre __SERVER_CONFIG__ dans votre fichier de configuration en conséquence.