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 请求。祝你好运!
美好的一天,
我已经创建了一个 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 请求。祝你好运!