IFTTT:尝试使用 Maker webhooks 运行 一个 php 脚本

IFTTT : Trying to run a php script using Maker webhooks

美好的一天,

我已经创建了一个 IFTTT 收据,如果 "myfox" 警报系统已启动,则会在我的 NAS (192.165.x.x) 上执行 php 脚本。 php 脚本应该触发我的 mysql 数据库中的存储过程。

以下 PHP 脚本已通过其他方式测试,我确信它可以工作:

<?php

/*
    php_update_mode_armed.php

    *****************************************************************************************
    * This script updates the value of the components in the table tbl_eedomus_current_mode
    * It calls the stored procedure 'sp_tbl_eedomus_current_mode_armed'
    *****************************************************************************************

    Version 1.00, 09.06.2017, Initial version of the script
*/


mainProcess();

function mainProcess()
{
    $ServerIP = "192.165.x.x";
    $sqlUser = "domoos";
    $sqlDatabase = "domoos";
$pw = "myPass";

    // Connect
    $mysqli = new mysqli($ServerIP, $sqlUser, $pw, $sqlDatabase);
    if(!$mysqli) {[![enter image description here][1]][1]
    header('Location: error.php?error=DbConnectionFailure');
    die();
    }

    // Call stored procedure sp_tbl_eedomus_current_mode_armed 
    if(!$mysqli->query("CALL sp_tbl_eedomus_current_mode_armed ()"))
    {
        echo "OK";
    if($mysqli) $mysqli->close(); // Close DB connection
    //header('Location: error.php?error=QueryFailure');
    die();
    }

    if($mysqli) $mysqli->close(); // Close DB connection    
}


?>

下面还有我的 "then" 部分 IFTTT 收据的屏幕截图。

我是不是做错了什么,或者 IFTTT 的使用不适合我在这里想要达到的目的?

非常感谢你在这件事上的帮助,祝你今天愉快。

最有可能的是,由于家庭路由器防火墙等原因,IFTTT 无法从互联网访问您的 NAS。此外,IFTTT 中使用的 IP 地址不应是 192.168.* 等本地 IP,而是您的 public IP地址。你可以通过 googling for "whats my ip".

来解决这个问题

使用笔记本电脑测试设置的最佳方法是断开与本地 wifi 网络的连接,将 phone 连接到笔记本电脑并尝试访问 NAS ip url 以查看它是否仍然有效。您可以使用 chrome 邮递员应用发送 POST 个请求。

如果没问题,请 PHP 通过写入文件来记录传入连接。 file_put_contents("log.txt", print_r($_REQUESTS, true));

我建议先尝试使用默认内容类型的 GET 请求。祝你好运!