Zapier REST订阅挂钩无法在Php中解析[重复]

Posted

技术标签:

【中文标题】Zapier REST订阅挂钩无法在Php中解析[重复]【英文标题】:Zapier REST Subscribe Hook Cannot Be Parsed In Php [duplicate] 【发布时间】:2020-01-07 20:13:36 【问题描述】:

我正在设置一个 Zapier 订阅钩子,这是它生成的代码供我测试...

const options = 
url: 'https://www.my-web-site-url.com/zapier/api/subscribe/hook',
method: 'POST',
headers: 
'Content-Type': 'application/json',
'X-API-KEY': bundle.authData.api_key,
'Accept': 'application/json'
,
params: 
'api_key': bundle.authData.api_key
,
body: 
'helloWorld': '123123',
'hookUrl': bundle.targetUrl



return z.request(options)
.then((response) => 
response.throwForStatus();
const results = z.JSON.parse(response.content);

return results;
);

当我在 Zapier 中运行测试时,它成功发布到我的 php 脚本,但是当我尝试解析我的 PHP 脚本中的主体变量:“hookUrl”或“helloWorld”时,我只是空白(什么都没有) .

这是我的简单 PHP 代码:

 echo $_POST['helloWorld']; 

我做错了什么,因为我不明白为什么 $_POST['helloWorld'] 不会呈现“123123”而不是“”。

【问题讨论】:

您的 POST 请求正在发送 JSON,因此您需要对其进行解码 【参考方案1】:

$_POST 数组仅用于内容类型为 application/x-www-form-urlencodedmultipart/form-data 的 HTTP-POST 请求。 [1]

我建议获取作为 json 编码字符串的请求正文并将其解码为数组。 [2]

$postdata = file_get_contents("php://input");

$request = json_decode($postdata, 1);

echo $request['helloWorld'];

【讨论】:

我也试过了,没有这样的运气。不过我不明白,内容类型不是“application/x-www-form-urlencoded”,而是“application/json” 所以这一定是 Zapier 的问题......今天早上,这一切都刚刚开始神奇地工作,我的代码没有任何改变。 #奇怪

以上是关于Zapier REST订阅挂钩无法在Php中解析[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Zapier Rest Hook 订阅

Zapier zap开启时如何触发我的subscribeHook

使用 .Net WebHooks 作为 RESThooks 连接到 Zapier

如何在“Zapier 代码”中编写节点获取(Rest-API)?

在 Node js 中解析 XML:Zapier

如何在不到 1.00 秒内从 Zapier python 发送帖子?