0

再会,

我创建了一个 IFTTT 收据,如果“myfox”警报系统已启用,则会在我的 NAS (192.165.xx) 上执行一个 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    
}


?>

下面也是我的 IFTTT 收据的“当时”部分的屏幕截图。

我在这里做错了什么还是 IFTTT 的使用不适合我在这里尝试实现的目的?

非常感谢您在这件事上的帮助,祝您度过愉快的一天。

在此处输入图像描述

4

1 回答 1

1

由于家庭路由器防火墙等原因,IFTTT 很可能无法从 Internet 访问您的 NAS。此外,IFTTT 中使用的 IP 地址不应是本地 IP,如 192.168.*,而是您的公共 IP 地址。你可以通过谷歌搜索“whats my ip ”来解决这个问题。

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

如果一切正常,请让 PHP 通过写入文件来记录传入连接。file_put_contents("log.txt", print_r($_REQUESTS, true));

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

于 2017-06-09T07:01:13.683 回答