通过IFTTT的Maker Channel发送的Web请求不发送任何数据

时间:2016-04-22 18:35:38

标签: php json url get ifttt

我有一个简单的IFTTT配方,只要发布instagram照片时就会触发标签#dog(用作示例,因为它几乎每秒触发一次,并且很容易排除故障)。这很好用。与Maker相关联的操作是向网站提交GET来电,如下图所示。

enter image description here

然后运行一个非常简单的PHP脚本,如下所示。

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$dump = $conn->real_escape_string(var_export($_GET, true));
$sql = sprintf("INSERT INTO table (dump) VALUES ('%s');", $dump);
echo $sql;
if ($conn->query($sql) !== TRUE) {
    echo "#######Error: ". $conn->error ."#######<br/>";
}
$conn->close();

这应该只是将$GET数组“转储”到MySQL表中。当我使用浏览器运行PHP脚本时,例如

http://www.example.com?data=test&data2=testing

我在DB中得到了正确的答案。但是,当通过IFTTT触发时,我得到一个空数组。

我已经尝试了Content Type以及POSTGET Methods的所有选项,但无论如何都没有提交。我通过在URL字段中将GET调用放在一起找到了一种解决方法,但这并不整洁,我认为它应该工作所以想要了解问题。另外,如果可能的话,我想发布GET而不是GET。

我认为问题与Body有关,而且格式不正确,但我已经尝试了我能想到的每一个组合,你在这里看到的是如何显示IFTTT上的例子。

有没有人有任何想法或已知解决方案。

谢谢,

1 个答案:

答案 0 :(得分:0)

您需要像上面提到的那样将数据嵌入到URL中。这就是GET请求的工作方式。如果你想保持整洁并且不在URL中嵌入数据,你可以在PHP脚本中使用$ _POST,然后使用IFTTT中的body部分来嵌入数据,如截图所示。