Vengo con un problemita. Me gusta la web if this then that (http://ifttt.com) que seguro la mayoría conocéis, y que se dedica a conectar diferentes aplicaciones para que unas reaccionen en función de lo que otra aplicación desencadene.
La gran limitación a mi modo de ver de la web es que no admita operadores boleados (No se puede programar: "si esto y esto, entonces esto otro".
IFTTT tiene un canal llamado MAKER que funciona tanto como trigger como acción. Utilizarlo como triare es muy sencillo, pero no logro que una acción de Maker ejecute un script de mi web.
El script es el siguiente:
Código PHP:
<?
// Obtener variables
$casa = $_POST['casa'];
$dias = array("domingo","lunes","martes","miercoles","jueves","viernes","sabado");
$dia = $dias[date("w")];
$noche = $_POST['noche'];
$otros1 = $_POST['otros1'];
$otros2 = $_POST['otros2'];
$disarmpiper="https://maker.ifttt.com/trigger/disarmpiper/with/key/xxxxxx";
$armpiperstay="https://maker.ifttt.com/trigger/armpiperstay/with/key/xxxxxx";
$armpiperaway="https://maker.ifttt.com/trigger/armpiperaway/with/key/xxxxxxx";
// Conexi贸n a la base de datos
$dbhost='localhost';
$dbusuario='xxx';
$dbpassword='xxx';
$db='xxx';
$conexion = mysql_connect($dbhost, $dbusuario, $dbpassword);
mysql_select_db($db, $conexion);
// echo $casa.' '.$fecha.' '.$hora.' '.$otros1.' '.$otros2;
if ($casa == 0) {
$result=mysql_query("UPDATE principal SET casa='0' WHERE id=0",$conexion);
}
elseif ($casa == 1) {
$result=mysql_query("UPDATE principal SET casa='1' WHERE id=0",$conexion);
}
if ($noche == 0) {
$result=mysql_query("UPDATE principal SET noche='0' WHERE id=0",$conexion);
}
elseif ($noche == 1) {
$result=mysql_query("UPDATE principal SET noche='1' WHERE id=0",$conexion);
}
$result=mysql_query('UPDATE principal SET dia="'.$dia.'" WHERE id=0',$conexion);
//Leer los datos actuales de la Base de Datos
$query = "select casa, dia, noche FROM principal"; // Esta linea hace la consulta
$result = mysql_query($query);
while ($row = mysql_fetch_row($result)){
$casa=$row[0];
$semana=$row[1];
$noche=$row[2];
}
echo "Casa: ".$casa." y noche: ".$noche." ";
if ($casa=="0" && $noche=="1"){
echo "Case 1";
echo "<SCRIPT>window.location='$armpiperaway';</SCRIPT>";
}
if ($casa=="1" && $noche=="1"){
echo "Case 2";
echo "<SCRIPT>window.location='$armpiperstay';</SCRIPT>";
}
if ($casa=="1" && $noche=="0"){
echo "case 3";
echo "<SCRIPT>window.location='$disarmpiper';</SCRIPT>";
}
if ($casa=="0" && $noche=="0"){
echo "case 4";
echo "<SCRIPT>window.location='$armpiperstay';</SCRIPT>";
}
mysql_close($conexion);
?>
Si hago una llamada al script escribiendo la URL http://url/script.php?casa=0&noche=0 (por ejemplo con el método GET en lugar de POST), se ejecuta correctamente y se arma o desarma la alarma en función de lo que tenga configurado.
El problema es que soy incapaz de ejecutarlo desde el canal Maker de IFTT que tengo configurado de esta manera:
Código:
He probado con los métodos post y get (cambiando el script) y nada.url: http://url al script.php (sin variables) Método: Post Content type: application/x-www-form-urlencoded Cuerpo: {"casa":"1", "noche":"1"} (por ejemplo)
No sé qué estoy haciendo mal, pero si alguien sabe manejar el canal maker de ifttt, agradecería ayuda...
Muchas gracias por adelantado!