获取对 Zapier webhook 的 PHP 响应

Posted

技术标签:

【中文标题】获取对 Zapier webhook 的 PHP 响应【英文标题】:Get PHP response into Zapier webhook 【发布时间】:2019-07-13 23:27:52 【问题描述】:

我正在将 PipeDrive 与 Post Affiliate Pro(使用它的 API)连接,并且正在使用 Zapier webhooks (POST)。因此,我在与 Post Affiliate Pro 交谈的服务器上使用 php 脚本。所以我的 PHP 脚本中有变量,我需要返回这些变量才能在另一个 webhook/或一般操作步骤中使用它们。在 Zapier 中,我在测试步骤时得到的唯一变量是带有我的响应消息的字符串(以及我放在那里的任何变量)。但我需要自己获取所有变量(我猜都是在 JSON 中)。

所以我的问题是:如何在 HTTP POST 请求中返回变量以使它们在 Zapier 中可用(在下拉列表中?)以便在下一个 webhook 中使用它们?

目前我有这样的事情:

if ($result->isError()) 
 echo 'Error: '.$result->getErrorMessage();
 else 
 //echo 'Ok: '.$result->getInfoMessage();
 echo json_encode($orderID);

我正在使用“echo”,但我也尝试使用“return”,但没有产生任何结果。我也尝试使用 json_encode 返回 JSON 但没有运气。还是我什至需要使用另一个 Zapier 步骤?还是我根本无法使用 POST webhook 返回值?我需要使用“Catch Hook”网络钩子吗?我对 Zapier 和 PHP 完全陌生。

Image shows just two Strings ('Text' & 'Text Transaktion') available in Zapier but no other variables

感谢您的帮助!

【问题讨论】:

【参考方案1】:

我终于自己发现了。我必须返回一个 JSON,其中包括所有内容。也不可能同时回显任何内容,因为这将导致仅输出一个包含所有值的字符串(就像我之前有过的那样)。

所以这样的事情就可以了:

if (!isset($returnValue)) 
  $returnValue = new stdClass();
  $returnValue->order_id = $orderID;
  $returnValue->result_message = $resultMessage;


print_r(json_encode($returnValue));

【讨论】:

以上是关于获取对 Zapier webhook 的 PHP 响应的主要内容,如果未能解决你的问题,请参考以下文章

在 Zapier 中使用 Webhooks 和 PayPal API 从特定 PayPal 交易中获取交易信息

我可以用其他可以创建 webhook 来捕获钩子的东西替换 zapier

curl 作为 Zapier Webhook 到 Stripe

如何从 zapier 代码触发 webhook

状态码 403 禁止(Webhooks Zapier 到 Zipwhip)

Zapier Webhooks 发布 Json 数组