首页 > 解决方案 > 获取对 Zapier webhook 的 PHP 响应

问题描述

我正在将 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 完全陌生。

图片显示 Zapier 中只有两个字符串('Text' & 'Text Transaktion'),但没有其他变量

谢谢你的帮助!

标签: phpposthttprequestwebhookszapier

解决方案


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

所以像这样的东西可以完成这项工作:

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

print_r(json_encode($returnValue));

推荐阅读