SkyAlert + IFTTT + PHP

El servicio proporcionado por SkyAlert, en mi opinión, es muy bueno. Es tan bueno que hay muy pocos (o ninguno) que les lleguen a la par en otros países; muy probablemente esto se debe a que México es una zona sísmica bastante activa y a que sus creadores están comprometidos con el servicio que están ofreciendo.

La aplicación tiene alertas inteligentes que, usando la ubicación actual del usuario envía (o no) alertas sísmicas. Desafortunadamente dichas alertas inteligentes no tienen la opción de configurar la zona manualmente y para quienes no estamos en la ciudad/estado interesado pero aun así queremos recibir este tipo de notificaciones se complica un poco pues o recibimos todas las alertas, o ninguna.

Después de prensar un poco en una alternativa se me prendió el 💡; SkyAlert también tiene una cuenta de Twitter en la que publican las notificaciones en (casi) tiempo real así que usando estas alertas en conjunto con IFTTT y un script sencillo en PHP conseguí tener las notificaciones que quería sin tener que esperar a que el servicio las implemente.

Este workaround esta compuesto de las siguientes partes:

  1. Un applet de IFTTT que monitorea los tuits de la cuenta IFTTT y cuando hay un nuevo tuit ejecuta un WebHook con el texto del tuit.
  2. Un script de PHP que recibe el WebHook y revisa si el contenido del tuit contiene el texto “Puebla” o “Pue.”
  3. Si el tuit contiene alguna de las cadenas de texto buscadas, ejecuta otro WebHook en IFTTT que me envía un SMS con el texto del tuit.

Por lo que podrán ver en el script mas adelante, no hay ningún parámetro de seguridad en si, ya que este script es ejecutado directamente desde la plataforma IFTTT a mi servidor; mi solución (sencilla) fue nombrar mi script con algunos caracteres aleatorios, asi es mas difícil que pueda ser encontrado y que alguna persona desconocida termine enviándome SMS no solicitados.

Para mas informacion de los WebHooks de IFTTT pueden visitar la pagina de documentación del Maker Channel.

Twitter a WebHook

WebHook a SMS

Script en PHP

<?php
$text = $_GET['text'];
$maker_url = 'https://maker.ifttt.com/trigger/skyalert_puebla/with/key/...?value1=';

if (strpos($text, 'Puebla') !== false || strpos($text, 'Pue.') !== false) {
    file_get_contents($maker_url . urlencode($_GET['text']));
}